PDO (PHP Data Objects), đây hoàn toàn không phải là một khái niệm mới nó được giới thiệu lần đầu tiên ở phiên bản PHP 5 mà hiện nay thì PHP 5 đang được sử dụng rất phổ biến. Vậy thì PDO là gì và nó hoạt động như thế nào? - Dịch ra một cách trần trụi thì PDO (PHP Data Objects) là các đối tượng dữ liệu trong PHP, nói theo một cách khác là nó sẽ chuyển tất cả dữ liệu thành đối tượng. Đồng thời nó cũng cung cấp các phương thức để thao tác với cơ sở dữ liệu. Trong các hệ cơ sở dữ liệu được PDO hỗ trợ mình sẽ liệt kê một vài cái chúng ta thường hay gặp, nếu các bạn muốn tìm hiểu thêm thì có thể vào trực tiếp trang php manual để xem tại đây. Còn mình sẽ liệt kê một số cái như sau:
PDO (PHP Data Objects), đây hoàn toàn không phải là một khái niệm mới nó được giới thiệu lần đầu tiên ở phiên bản PHP 5 mà hiện nay thì PHP 5 đang được sử dụng rất phổ biến. Vậy thì PDO là gì và nó hoạt động như thế nào?
- Dịch ra một cách trần trụi thì PDO (PHP Data Objects) là các đối tượng dữ liệu trong PHP, nói theo một cách khác là nó sẽ chuyển tất cả dữ liệu thành đối tượng. Đồng thời nó cũng cung cấp các phương thức để thao tác với cơ sở dữ liệu. Trong các hệ cơ sở dữ liệu được PDO hỗ trợ mình sẽ liệt kê một vài cái chúng ta thường hay gặp, nếu các bạn muốn tìm hiểu thêm thì có thể vào trực tiếp trang php manual để xem tại đây. Còn mình sẽ liệt kê một số cái như sau: - PDO_MySQL (MySQL 3.x/4.x/5.x) - PDO_DBLIB (FreeTDS / Microsoft SQL Server / Sybase) - PDO_OCI (Oracle Call Interface) - PDO_ODBC (ODBC v3) PDO sẽ thao tác với cơ sở dữ liệu của chúng ta theo mô hình sau: Tùy theo từng hệ cơ sở dữ liệu mà bạn có thể chọn driver riêng để kết nối phù hợp. Còn trong bài viết này mình sẽ hướng dẫn các bạn thực hiện trên MySQL, đương nhiên rồi vì đa số chúng ta đều làm việc với cái này mà. Bắt đầu nào. Kết nối với DB - Trước tiên bạn phải chắc chắn rằng extension php_pdo_MySQL.dll đã được bật. 1 extension=php_pdo_MySQL.dll - Cú pháp để kết nối với DB sử dụng PDO hơi khác một chút so với cách thông thường, cụ thể như sau: CODE
Exceptions và PDO - PDO vẫn có thể sử dụng Exception để xử lý các lỗi và lời khuyên là những thao tác nào liên quan đến PDO thì tốt nhất chúng ta nên đặt trong try/catch, giống đoạn kết nối DB phía trên của mình. Khi sử dụng Exception cần lưu ý những điều sau: Có 3 chế độ: - PDO::ERRMODE_SILENT: Khi gặp lỗi thì nó sẽ bỏ qua và tiếp tục chạy. Cái này tiện cho production. - PDO::ERRMODE_WARNING: Khi gặp lỗi nó sẽ xuất ra thông báo và tiếp tục chạy. Cái này tiện cho việc debug. - PDO::ERRMODE_EXCEPTION: Khi gặp lỗi nó sẽ đưa ra Exception và cho chúng ta xử lý. Chúng ta sẽ sử dụng cái này. Và đoạn kết nối Database hoàn chỉnh sẽ như sau: CODE
Insert và Update - Đây là 2 thao tác rất quen thuộc khi thao tác với DB. Nhưng sử dụng PDO chúng ta phải tuân thủ theo nguyên tắc sau đây: - Chỉ có 3 bước đơn giản vậy thôi. Việc tuân thủ theo quy trình này sẽ giúp chúng ta tránh được các lỗi liên quan đến SQL-Injection, đây là một lỗi cũng khá phổ biến ah nha. - Có 2 cách để prepare một câu query: CODE
- Tùy vào mỗi cách chúng ta sẽ có cách bind tham số khác nhau Tham số không định danh $st = $db->prepare('INSERT INTO user(username,password,email) VALUES (?,?,?)'); $data = array('kevin','123456','contact@minhtringuyen.info'); $st->execute($data); Tham số định danh CODE
Selecting Data - Cũng như cách thông thường, dữ liệu khi được lấy lên phải được fetch vào một array, object hoặc class thì chúng ta mới có thể sử dụng được. PDO cũng cung cấp cho chúng ta một số chế độ fetch cơ bản như sau: PDO::FETCH_BOTH (default): Trả về một mảng bao gồm cả thứ tự PDO::FETCH_ASSOC: Trả về một mảng PDO::FETCH_OBJ: Trả về một object PDO::FETCH_BOTH CODE
// Cấu trúc dữ liệu trả về CODE
PDO::FETCH_ASSOC: CODE
PDO::FETCH_OBJ: CODE
Các hàm tiện ích - Lấy id vừa mới insert vào DB CODE
- Thực thi câu query không cần giá trị trả về CODE
- Trả về số dòng thực thi thành công CODE
- Trên đây là toàn bộ các bước cơ bản nhất để thao tác với PDO, hy vọng bài viết bài có ích cho những bạn mới tiếp cận với cái này ^^ |
Thêm vào trang Google +
Số lần xem : 8718
Đánh giá