Kiến thức cơ bản về lê db trong php
Stig S. Bakken đã thành lập dự án PEAR vào năm 1999 để thúc đẩy việc sử dụng lại mã để thực hiện các vai trò tập thể. động cơ chính của tiện ích mở rộng này là cung cấp một thư viện mã có tổ chức, giữ một khung để truyền tải mã và xử lý các gói mã, đồng thời nâng cao phong cách viết mã cơ bản. Kho lưu trữ ứng dụng và tiện ích mở rộng tiền xử lý siêu văn bản là kho chứa mã lập trình PHP. Dự án PEAR có một Nhóm PEAR, đóng vai trò là cơ quan quản lý và giải quyết các công việc có thẩm quyền. Mỗi gói mã PEAR chứa một tác vụ tự trị dưới ô PEAR. Nó có nhóm tiến bộ, kiểm soát hình thành và tài liệu Show
Gói PEAR là gì?Gói PEAR được sử dụng dưới dạng bản ghi tar được nén ( tar là phần mềm chủ yếu được sử dụng để thu thập nhiều tệp bên trong một tệp được lưu trữ). Mỗi tệp bao gồm mã nguồn được viết bằng PHP; . Không giống như Mạng lưu trữ Perl toàn diện (CPAN), các gói PEAR không có các điều kiện có thể kiểm chứng được với mục tiêu là vị trí của gói trong cây gói PEAR không liên quan đến các phụ thuộc mã. Thay vào đó, PEARL khai báo tất cả các thư mục trên gói. Để cài đặt PEAR, chúng ta có thể sử dụng trình quản lý gói PEAR, trình cài đặt gói PHP mặc định, cho phép người dùng sử dụng tất cả các chức năng bổ sung do PEAR cung cấp như một phần tích hợp của PHP Các lớp cơ sở PEAR chứa mã có thể sao chép lập trình hướng đối tượng, hàm hủy và thậm chí xử lý lỗi. PEAR cũng chứa các gói để thực hiện các chức năng cơ bản của PHP như xác thực, lưu vào bộ đệm, truy cập cơ sở dữ liệu, mã hóa, cấu hình, HTML, XML và các dịch vụ web Nó là một cấu trúc và khuôn khổ chiếm đoạt cho các phần PHP có thể tái sử dụng. Nó mở rộng PHP và cung cấp cho tất cả các nhà thiết kế web một trình độ lập trình cao hơn PEAR được tách thành ba lớp riêng biệt bao gồm
Trình quản lý gói PEARTrình quản lý gói PEAR cung cấp một phương pháp chuẩn hóa để cài đặt, gỡ cài đặt hoặc cập nhật với gói PEAR mới hoặc các phần mở rộng PECL. Trước khi cài đặt một gói, nó cũng có thể được yêu cầu cài đặt tất cả các gói bổ sung cần thiết để chạy gói chính QUẢ LÊ. 2 hoặc Kim tự thápPYRUS là sáng kiến cập nhật và phát triển PEAR từ đầu để làm cho nó tương thích với PHP 5. 3 hoặc mới hơn. Pyrus có thể được sử dụng để cài đặt các gói từ PEAR, nhưng sau đó nó đã bị ngừng do nhu cầu ngày càng tăng đối với Composer PEAR và Nhà soạn nhạcTrình soạn thảo PHP là một giải pháp thay thế khác cho phép nhà phát triển quản lý các gói PHP cho dự án và ngoài ra, trình soạn thảo cho phép chúng tôi cài đặt các gói PEAR PECLPECL - viết tắt của thư viện cộng đồng mở rộng PHP, tương tự như PEAR và PECL Các gói cũng được cài đặt với trình quản lý gói PEAR. PECL chứa các phần mở rộng C để tổng hợp vào PHP. Là các dự án C, các phần mở rộng PECL chạy thành thạo hơn các gói PEAR. PECL kết hợp các mô-đun để phân tích cú pháp XML, truy cập vào nhiều cơ sở dữ liệu hơn, phân tích cú pháp thư, cài đặt Perl hoặc Python trong các tập lệnh PHP và lắp ráp các tập lệnh PHP. PECL bị tắt khỏi Dự án PEAR vào tháng 10 năm 2003. Ban đầu, nó được gọi là Thư viện mã mở rộng PEAR. Tuy nhiên, nó hiện đang hoạt động tự do của PEAR. Các tiện ích mở rộng PECL được lưu trữ gần với các tiện ích mở rộng tiêu chuẩn trong Hướng dẫn sử dụng PHP, do đó không có các tiện ích mở rộng PECL bất thường nào. Sâu xa trong nhiều trường hợp này, các biến thể PECL trở nên không rõ ràng Mặc dù các chức năng DBX của PHP rất hữu ích trên các trang web đơn giản, vẫn có một giải pháp giàu tính năng hơn dành cho các trang web yêu cầu độ phức tạp cao hơn trong việc sử dụng cơ sở dữ liệu của họ. Giải pháp này là PEAR. ĐB PEAR—Kho lưu trữ ứng dụng và tiện ích mở rộng PHPPEAR là một "khung và hệ thống phân phối cho các thành phần PHP có thể tái sử dụng. "1 PEAR cung cấp" mô-đun "dọc theo dòng của bộ mô-đun PERL CPAN. Hãy coi các mô-đun là thư viện chứa các thành phần dựng sẵn mà bạn có thể sử dụng để viết mã PHP dễ dàng hơn. PEAR hiện đang ở giai đoạn thử nghiệm và đang được phát triển mạnh mẽ, nhưng nó đã chứa nhiều mô-đun hữu ích mà bạn có thể sử dụng trong các dự án của riêng mình. PEAR cung cấp các mô-đun nguồn mở, phân phối và bảo trì cho các mô-đun đó cũng như tiêu chuẩn mã hóa cho các mô-đun nói trên PEAR được phân phối với PHP. Nếu bạn đã cài đặt PHP gần đây, bạn có thể nhận thấy thư mục "lê" và nhiều tệp trong đó. Vì PEAR vẫn đang trong giai đoạn thử nghiệm nên nó chưa được quảng cáo rộng rãi, nhưng nó đã bắt đầu nhận được nhiều sự chú ý từ các nhà phát triển PHP, đặc biệt là những người đã và đang sử dụng các thư viện của bên thứ ba, chẳng hạn như PHPLIB và ADOdb. Mặc dù có sẵn các thư viện tốt của bên thứ ba, nhưng vẫn chưa có một tiêu chuẩn nào về hướng dẫn viết mã, phân phối và bảo trì. PEAR có vẻ là giải pháp cho vấn đề này Một trong những mô-đun đang bắt đầu trở nên phổ biến là PEAR DB "một API hợp nhất để truy cập cơ sở dữ liệu SQL. " PEAR DB vượt xa chức năng của thư viện DBX và hầu như hoàn toàn hướng đối tượng. PEAR DB hỗ trợ một tập hợp con hợp lý của cơ sở dữ liệu lõi được PHP hỗ trợ và đang được mở rộng để hỗ trợ nhiều hơn nữa. PEAR DB là một công cụ tuyệt vời để mã hóa các ứng dụng PHP độc lập với cơ sở dữ liệu Đang tải xuống PEARBạn có thể tải xuống các phiên bản gần đây của PEAR từ trang web PEAR tại lê. php. bọc lưới. Nhập "DB" vào hộp "tìm kiếm" ở góc trên bên phải của trang web Nhấp vào kết quả tìm kiếm đầu tiên xuất hiện, "DB", sau đó tải xuống phiên bản ổn định mới nhất từ danh sách các bản phát hành Đang tải xuống PEAR từ Hệ thống Phiên bản Đồng thời (CVS)Mặc dù PEAR được bao gồm trong tất cả các phiên bản PHP gần đây và bạn có thể tải xuống các phiên bản ổn định sau này từ trang web PEAR, phiên bản PEAR mới nhất và tốt nhất với các tính năng mới nhất có thể vẫn nằm trong kho lưu trữ CVS. Lưu ý rằng bạn không nên sử dụng các phiên bản CVS trên các trang web sản xuất. Nếu bạn có quyền truy cập vào CVS (www. cvhome. org), thì bạn nên tận dụng lợi thế của nó và tải xuống mã nguồn PEAR mới nhất từ kho lưu trữ PHP CVS. Bạn có thể tìm hiểu tất cả các chi tiết cụ thể trên kho PHP CVS tại http. //cvs. php. bọc lưới/ Để tải xuống nguồn PEAR mới nhất
Bạn được nhắc nhập mật khẩu. Nhập "phpfi" Tôma V. V. Cox, một trong những người đóng góp chính cho tài liệu PEAR DB, khuyến nghị sử dụng cờ "tuần trước". Đôi khi bản mới nhất có một chút lỗi, nhưng hầu hết các lỗi sẽ được sửa trong một tuần. 2 Cài đặt PEARKhi bạn đã tải xuống nguồn, bạn nên sửa đổi cài đặt include_path của mình trong php. ini để trỏ đến thư mục lê hoặc bạn có thể sử dụng chức năng sau ở đầu mỗi tập lệnh yêu cầu quyền truy cập vào PEAR ini_set("include_path", "path/to/pear"); Khi bạn có nguồn PEAR mới nhất, bạn đã sẵn sàng để bắt đầu. Nếu bạn không có phiên bản mới nhất, bạn vẫn có thể thử các ví dụ, nhưng số dặm của bạn có thể thay đổi Quay lại vấn đề cơ bảnBây giờ bạn đã sẵn sàng viết mã ứng dụng PEAR DB, bạn phải tìm hiểu lại những kiến thức cơ bản về kết nối và truy vấn cơ sở dữ liệu. Giống như bất kỳ ứng dụng PHP dựa trên cơ sở dữ liệu nào, trước tiên bạn phải kết nối với cơ sở dữ liệu. PEAR DB sử dụng DB. connect() cho mục đích này (chú ý sự tương đồng với cú pháp mô-đun CPAN của PERL) $dbconn = DB::connect(DSN); ĐB. connect() lấy một đối số, một DSN. DSN là viết tắt của tên nguồn dữ liệu và đó là một cách để chỉ định tất cả các cài đặt cần thiết cần thiết để kết nối với cơ sở dữ liệu trong một gói gọn gàng. Một DSN thường bao gồm những điều sau đây
Loại cơ sở dữ liệu có thể là một trong những loại sau
Tất cả thông tin này được định dạng trong một chuỗi $dsn = "type://username:password@host:port/database"; Nếu cơ sở dữ liệu của bạn không yêu cầu tùy chọn, chẳng hạn như mật khẩu hoặc nếu cơ sở dữ liệu đang chạy trên cổng tiêu chuẩn, thì bạn có thể bỏ qua các tùy chọn đó khỏi DSN. Nếu kết nối thành công thì DB. connect() trả về một đối tượng kết nối hợp lệ. Nếu có lỗi, nó sẽ trả về một đối tượng Lỗi DB Trang hỗ trợ PEAR DB bắt đầu như thế này ini_set("include_path", "path/to/pear"); require_once('DB.php'); $type = "mssql"; $user = "mssqluser"; $pass = "password"; $host = "192.168.0.1"; $database = "php"; $dsn = "$type://$user:$pass@$host/$database"; $dbconn = DB::connect($dsn); Khi bạn đã cố gắng tạo kết nối, bạn nên xác minh rằng nó đã hoạt động. PEAR DB cung cấp DB. hàm isError() để kiểm tra xem có lỗi không DB::isError(OBJECT) ĐB. isError() nhận một đối số, ĐỐI TƯỢNG, đối tượng được tạo bởi hàm PEAR DB trước đó. Trong ví dụ trên, bạn sẽ kiểm tra lỗi như thế này if (DB::isError($db)) { die ($dbconn->getMessage()); } Đợi một chút, có vẻ như có thứ gì đó đã lẻn vào đó. $dbconn->getMessage() là một phương thức, khi một lỗi được tạo ra, cho phép bạn hiển thị bất kỳ thông báo nào liên quan đến đối tượng lỗi. Nếu nỗ lực kết nối không hoạt động, $dbconn sẽ biến thành một đối tượng Lỗi DB. Nếu không có lỗi, thì getMessage() sẽ không hoạt động trên $db, vì nó là một đối tượng kết nối hợp lệ Được rồi, vậy là bạn đã thiết lập kết nối và cách bẫy lỗi nếu kết nối không thành công. Điều tiếp theo bạn cần biết cách thực hiện là gửi truy vấn đến cơ sở dữ liệu của mình. Điều này được thực hiện bằng phương thức query() $result = $dbconn->query(QUERY); query() nhận một đối số, QUERY, là một câu lệnh SQL. Bạn gán kết quả của truy vấn đó cho một biến, chẳng hạn như $result, là một đối tượng kết quả Khi bạn có một đối tượng kết quả hợp lệ, bạn có thể sử dụng một trong các phương thức "tìm nạp" để tìm nạp dữ liệu từ kết quả, sau đó định dạng và hiển thị cho người dùng hoặc thực hiện một số xử lý khác trên đó. Có hai phương pháp tìm nạp mà bạn có thể sử dụng. tìm nạpRow() và tìm nạpInto(). Cả hai chức năng này về cơ bản đều giống nhau; ________số 8và $result->fetchInto($row); tạo ra chính xác điều tương tự, một biến có tên $row có dữ liệu hàng hiện tại từ đối tượng kết quả Bạn có thể chỉ định định dạng của dữ liệu được truy xuất bởi các phương thức tìm nạp bằng cách gán một đối số bổ sung cho phương thức. Các phương thức tìm nạp hỗ trợ ba định dạng dữ liệu mà chúng có thể truy xuất. đó là
Ví dụ: giả sử bạn có thông tin sau trong bảng (Bảng 3–2) có tên là "đội" BẢNG 3–2 Dữ liệu mẫuTÔI Tên Nguồn gốc 0 Mũi nhọn MA 1 máy bay phản lực AZ 2 tiên FL 3 biên tập NM 4 Ein khí CO Bạn truy vấn cơ sở dữ liệu và nhận được kết quả $dbconn = DB::connect(DSN);0 Ba định dạng sẽ là $dbconn = DB::connect(DSN);1 Các định dạng này cung cấp rất nhiều tính linh hoạt. Cũng lưu ý rằng các phương thức tìm nạp khác nhau sẽ tạo ra cùng một kết quả như mong đợi Vì nó có thể là một lực cản thực sự khi phải nhập DB_FETCHMODE_ASSOC hoặc DB_FETCHMODE_OBJECT làm đối số cho mọi phương thức tìm nạp trong tập lệnh của bạn (nếu bạn chọn sử dụng các định dạng đó), PEAR DB cung cấp một phương thức tiện lợi có tên là setFetchMode() $dbconn = DB::connect(DSN);2 setFetchMode là một phương thức cho đối tượng kết nối đặt chế độ tìm nạp mặc định cho tất cả các hàm tìm nạp. Đối số, MODE, có thể là bất kỳ một trong ba chế độ tìm nạp được chỉ định trước đó. Lưu ý rằng việc đặt chế độ tìm nạp thành DB_FETCHMODE_ORDERED là vô nghĩa nếu bạn chưa đặt chế độ tìm nạp thành một trong các giá trị khác, vì nó đã là giá trị mặc định. Sau khi bạn sử dụng phương thức này, tất cả các phương thức tìm nạp mà bạn gọi sẽ sử dụng chế độ được chỉ định bởi setFetchMode(), trừ khi bạn đã chỉ định một chế độ tìm nạp khác trong chính phương thức tìm nạp đó Bạn cũng nên kiểm tra kết quả của mình để tìm lỗi bằng phương pháp tương tự như khi kiểm tra lỗi kết nối. Nếu một truy vấn () dẫn đến lỗi, thì nó sẽ trả về một đối tượng lỗi $dbconn = DB::connect(DSN);3 Sau khi bạn hoàn thành tập kết quả của mình, bạn nên giải phóng đối tượng kết quả bằng cách sử dụng phương thức free(). Điều này sẽ "giải phóng" bộ nhớ được liên kết với tập kết quả và giảm tải cho máy chủ Web của bạn $dbconn = DB::connect(DSN);4 Cuối cùng, khi bạn đã hoàn thành tập lệnh của mình, bạn nên đóng kết nối với máy chủ. Điều này được thực hiện bằng cách sử dụng phương thức ngắt kết nối của đối tượng kết nối $dbconn = DB::connect(DSN);5 Bây giờ bạn đã có các khối xây dựng để tạo một tập lệnh đơn giản. Tập lệnh tiếp theo này minh họa các phương thức tìm nạp khác nhau và các lỗi Tập lệnh 3–5 lêdb1. Tập lệnh php 3–6$dbconn = DB::connect(DSN);6 Tập lệnh 3–5 lêdb1. php Giải thích từng dòngDÒNG SỰ MIÊU TẢ 2 Đặt đường dẫn bao gồm để thư viện PEAR có thể truy cập vào tập lệnh của bạn 3 Yêu cầu DB. thư viện php từ bản phân phối PEAR 4–8 Xác định các thuộc tính yêu cầu để tập lệnh của bạn có thể kết nối với cơ sở dữ liệu của bạn 9 Xây dựng DSN bằng các thuộc tính được xác định ở trên 10 Thiết lập kết nối đến máy chủ cơ sở dữ liệu 11 Nếu có lỗi kết nối với cơ sở dữ liệu, hãy tắt tập lệnh và hiển thị bất kỳ thông báo nào liên quan đến lỗi 13–16 Xác định câu lệnh SQL cần thiết để tạo bảng được sử dụng trong ví dụ này 18–24 Tạo một mảng các câu lệnh SQL sẽ được sử dụng để tạo các mục nhập trong cơ sở dữ liệu 26 Truy vấn cơ sở dữ liệu để xem có gì tồn tại trong bảng không 27 Kiểm tra xem truy vấn từ dòng 26 có bị lỗi không. Nếu có, hãy tắt tập lệnh và hiển thị thông báo lỗi cho người dùng 28 Nếu số hàng được trả về trong tập hợp kết quả là 0, thì thực hiện các dòng 29–34 29 Thông báo cho người dùng rằng tập lệnh đang điền vào cơ sở dữ liệu 30 Bắt đầu một vòng lặp for để lặp qua các mục trong mảng $values 31 Thực hiện truy vấn cho từng mục trong mảng $value 32 Nếu có lỗi với truy vấn, hãy tắt tập lệnh và hiển thị bất kỳ thông báo lỗi nào 34 Nếu không có lỗi xảy ra, hãy thông báo cho người dùng rằng cơ sở dữ liệu đã được điền và họ nên tải lại trang 35 Nếu có các hàng trong bảng (được đánh dấu ở dòng 28), thì hãy thực hiện phần còn lại của tập lệnh 36–37 Truy vấn cơ sở dữ liệu. Nếu có lỗi với truy vấn, hãy tắt tập lệnh và hiển thị bất kỳ thông báo lỗi nào Các phương thức trong thư viện PEAR DB là gì?Thư viện hướng đối tượng, với sự kết hợp của các phương thức lớp ( DB. kết nối ( ), cơ sở dữ liệu. iserror( ) ) và các phương thức đối tượng ( $db->query( ) , $q->fetchInto( ) ) .
Phương pháp nào được sử dụng để kết nối cơ sở dữ liệu trong PEAR DB?$dbconn = cơ sở dữ liệu. kết nối (DSN);. Tập lệnh 3–5 lêdb1. php Giải thích từng dòng Tên nguồn dữ liệu trong PEAR DB là gì?Để kết nối với cơ sở dữ liệu thông qua PEAR. DB, bạn phải tạo một DSN hợp lệ - tên nguồn dữ liệu. DSN này bao gồm các phần sau. phptype. Cơ sở dữ liệu phụ trợ được sử dụng trong PHP (i. e. mysql, odbc, v.v. ) dbsyntax. Cơ sở dữ liệu được sử dụng liên quan đến cú pháp SQL, v.v. .
Hàm nào được DB ngang hàng sử dụng để thực hiện truy vấn và tìm nạp kết quả trong một bước?Phương thức fetchRow( ) trên một kết quả truy vấn trả về một mảng của hàng kết quả tiếp theo. $row = $result->fetchRow([ chế độ ]); . |