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

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

  • Thành phần cốt lõi PEAR
  • Gói PEAR
  • Gói PECL

Trình quản lý gói PEAR

Trì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áp

PYRUS 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ạc

Trì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

PECL

PECL - 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 PHP

PEAR 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 PEAR

Bạ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

  1. Thay đổi thư mục thành vị trí mà bạn muốn đặt nguồn [hoặc một nơi thuận tiện để bạn có thể sao chép tệp]

  2. Thực hiện lệnh. cvs -d. pserver. cvsread@cvs. php. bọc lưới. / đăng nhập kho lưu trữ

  3. Bạn được nhắc nhập mật khẩu. Nhập "phpfi"

  4. Thực hiện lệnh. cvs -d. pserver. cvsread@cvs. php. bọc lưới. / xuất kho lưu trữ -D "tuần trước" php4/lê

  5. 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

  6. Sao chép thư mục lê trên thư mục lê hiện có của bạn trong bản cài đặt PHP của bạn

Cài đặt PEAR

Khi 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ản

Bâ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

  • type—Loại máy chủ cơ sở dữ liệu mà bạn đang kết nối. Xem bên dưới để biết ví dụ

  • máy chủ—Tên máy chủ của máy chủ cơ sở dữ liệu mà bạn đang kết nối, tùy chọn theo sau là cổng

  • cơ sở dữ liệu—Tên của cơ sở dữ liệu mà bạn đang kết nối

  • tên người dùng—Thông tin đăng nhập của người dùng có quyền truy cập vào cơ sở dữ liệu

  • mật khẩu—Mật khẩu của người dùng

Loại cơ sở dữ liệu có thể là một trong những loại sau

  • mysql—MySQL
  • pgsql—PostgreSQL
  • ibase—InterBase
  • sql—mySQL
  • mssql—Máy chủ Microsoft SQL
  • oci8—Oracle 7/8/8i
  • odbc—ODBC
  • sybase—Sybase
  • ifx—Informix
  • fbsql—FrontBase

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ố 8

$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à

  • DB_FETCHMODE_ORDERED—[mặc định] Dữ liệu được định dạng dưới dạng một mảng có thứ tự

  • DB_FETCHMODE_ASSOC—Dữ liệu được định dạng dưới dạng một mảng kết hợp

  • DB_FETCHMODE_OBJECT—Dữ liệu được định dạng dưới dạng đối tượng, với tên cột là thuộc tính

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ẫu

TÔ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òng

DÒ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ế độ ]]; .

Chủ Đề