Nội dung
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Trước đây, bạn không sử dụng thư viện mysql php cho công việc lưu trữ dữ liệu vào database. Thủa bắt đầu làm quen với php và mysql chúng ta thường sử dụng các hàm kết nối vào mysql và hàm thông thường của php để đọc, viết bản ghi vào bảng database. Sử dụng php mysql sơ khai làm cho bạn mất thời gian viết những đoạn code phục vụ cho việc truy xuất và thay đổi dữ liệu trong csdl và cũng không chuyên nghiệp nữa. Viết nhiều dòng code, nhưng không hữu dụng làm bạn đau dầu và mất tập trung vào code chính.
Trong bài hôm nay mình giới thiệu thư viện MySQL dùng cho PHP sẽ giúp bạn tương tác với mysql một cách dễ dàng đó là “ADOdb”.
ADOdb hiện tại hỗ trợ rất nhiều cơ sở dữ liệu phổ biến hiện nay như: MySQL, PostgreSQL, Interbase, Firebird, Informix, Oracle, MS SQL, Foxpro, Access, ADO, Sybase, FrontBase, DB2, SAP DB, SQLite, Netezza, LDAP, và generic ODBC, ODBTP được phát triển bởi cộng đồng ADOdb.
Lý do bạn nên dùng ADOdb:
- Tốc độ sử lý nhanh. Là thư viện có tốc độ nhanh nhất trong số các thư viện hỗ trợ mysql của PHP.
- Nhiều tính năng cho cá nhân và doanh nghiệp. ví dụ database backed sessions, SQL code generation..
- Dễ dàng sử dụng.
- Được rất nhiều cộng đồng sử dụng.
Trước tiên, bạn tải thư viện ADOdb tại đây.
Kết nối Database
Kết nối mysql với đoạn code sau:
include('/path/to/adodb.inc.php'); $DB = NewADOConnection('mysql'); $DB->Connect($server, $user, $pwd, $db);
Tên driver mình kết nối là ‘mysql’. Có thể thay thế các dòng code trên với một địa chỉ database URI đầy đủ được yêu cầu chuỗi URI phù hợp cho từng driver. Ví dụ nếu bạn sử dụng mysql thì URI gồm tên driver, user, pass, host theo cấu trúc như sau:
# Alternative URI connection syntax: $DB = NewADOConnection("mysql://$user:$pwd@$server/$db?persist");
Lưu ý: Cung cấp MySQL URI ở trên, bạn không cần gọi phương thức $DB->Connect
để tạo kết nối tới CSDL nữa.
Truy xuất dữ liệu
Thực thi mọi lệnh SQL bởi hàm Execute
, phương thức hỗ trợ nhiều dạng lệnh SELECT SQL. ví dụ sau lấy nội dung table theo kiểu PEAR.
# PEAR style data retrieval $rs = $DB->Execute("select * from table where key=123"); while ($array = $rs->FetchRow()) { print_r($array); }
Tích hợp cho Microsoft SQL.
# M'soft style data retrieval with binds $rs = $DB->Execute("select * from table where key=?",array($key)); while (!$rs->EOF) { print_r($rs->fields); $rs->MoveNext(); }
Retrieving data shortcuts
# retrieving data shortcuts $val = $DB->GetOne("select col from table where key='John'"); $row = $DB->GetRow("select col from table where key='John'"); $arr = $DB->GetAll("select col from table"); $arr = $DB->GetAssoc("select key,col from table"); # returns associative array $key=>col
Thay đổi dữ liệu
Nên sử dụng lệnh SQL kiểu M’soft như ví dụ sau cập nhật dữ liệu field vào table sẽ rất hưu ích với các giá trị có ký tự quote.
$ok = $DB->Execute("update table set col1=? where key=?",array($colval, $key));
Bạn không phải dùng hàm mysql_real_escape_string
tạo giá trị cho trường giống thế này:
$field1='sdnfhsdf"dfgjkb"dfjkghdig'; $rs = $DB->Execute('update table1 set key="'.mysql_real_escape_string($field1).'"');
Tăng tốc truy vấn SQL bằng Cache
Thực hiện lệnh SQL và lưu kết quả vào bộ nhớ trong vòng 3600 s.
# Retrieve high speed cached recordsets (cached for 3600 secs) # Cache directory defined in global $ADODB_CACHE_DIR. # CacheGetOne, CacheRow, CacheGetAll all work $rs = $DB->CacheExecute(3600, "select orgname from users where user='JOHN'");
Hiển thị lỗi
$ok = $DB->Execute("update atable set aval = 0"); if (!$ok) mylogerr($DB->ErrorMsg());
Hỗ trợ PHP5
Từ phiên bản php5 có exception và SPL cho phép đổi kiểu dữ liệu linh hoạt. Bỏ qua phương thức FetchRow
$rs = $DB->Execute("select * from table"); foreach ($rs as $row) { print_r($row); }
Tài liệu chi tiết, xem tại đây: http://adodb.sourceforge.net/docs-adodb.htm
Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dõi kênh chia sẻ kiến thức WordPress của Hoangweb trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype