Sử dụng PDO để kết nối với MySQL
Rất nhiều lập trình viên đã quen với việc cài đặt và sử dụng MySQL hoặc MySQLi extension trong PHP để kết nối với MySQL. Phiên bản PHP 5.1 giới thiệu tính năng PHP Data Object viết tắt là PDO. Tính năng này cho phép việc kết nối và tương tác với cơ sở dữ liệu trở lên dễ dàng và hiệu quả hơn so với ...
Rất nhiều lập trình viên đã quen với việc cài đặt và sử dụng MySQL hoặc MySQLi extension trong PHP để kết nối với MySQL. Phiên bản PHP 5.1 giới thiệu tính năng PHP Data Object viết tắt là PDO. Tính năng này cho phép việc kết nối và tương tác với cơ sở dữ liệu trở lên dễ dàng và hiệu quả hơn so với trước đây. Trong bài học này tôi sẽ hướng dẫn bạn cách sử dụng PDO trong PHP.
PDO là gì
PDO là lớp truy cập cơ sở dữ liệu trong PHP, nó cung cấp một hệ thống API duy nhất giúp kết nối với nhiều cơ sở dữ liệu khác nhau như MySQL, PostgreSQL... Tính năng nổi bật của PDO so với việc sử dụng các extension khác đó là khi bạn muốn chuyển đổi giữa các loại cơ sở dữ liệu khác nhau vì dụ từ MySQL sang PostgreSQL thì bạn không phải sử đổi mã code mà đảm bảo ứng dụng vẫn hoạt động bình thường.
Tạo Database
Trước hết chúng ta cần tạo một database để có thể làm việc với nó. Chúng ta sẽ tạo một database với tên là my_pdo_test trong đó có một bảng users. Để tạo database bạn chạy câu lệnh sau:
create database test_pdo;
Bạn có thể sử dụng PHPMyAdmin hoặc MySQL client thông thường trên command line để thực thi câu lệnh trên. Tiếp theo, chúng ta cần phải thông báo với MySQL server là chúng ta sẽ sử dụng database này bằng cách chạy câu lệnh sau:
user test_pdo;
Tiếp theo tạo một bảng users với cú pháp như sau:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `age` int(3) unsigned NOT NULL, PRIMARY KEY (`id`) )
Kết Nối Với MySQL
Bây giờ để kết nối với MySQL, chúng ta sử dụng câu lệnh sau:
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
Ở đây $host, $dbname, $user và $pass lần lượt là thông tin host (thường là localhost hoặc I.P của database), tên database, tên đăng nhập và mật khẩu của người dùng tạo hoặc có quyền sử dụng database này. Ví dụ của tôi như sau:
$db = new PDO("mysql:host='localhost';dbname='test_pdo'", "root", "");
Để kiểm tra xem kết nối thành công hay không, chúng ta sẽ sử dụng try..catch:
try { $db = new PDO("mysql:host='localhost';dbname='test_pdo'", "root", ""); } catch (PDOException $e) { echo $e->getMessage(); }
Nếu chạy đoạn mã trên mà bạn thấy có lỗi xảy ra thì bạn cần kiểm tra lại thông tin của host, db, user và pass.
Chèn Record Vào Bảng
Để chèn record vào bảng chúng ta sử dụng câu lệnh sau:
$sql = "INSERT INTO users(name, age) values('Lê Hoàng Anh', 25)"; $sth = $dbh->prepare($sql); $sth->execute();
Sau khi chạy đoạn mã trên bạn sẽ thấy trên DB xuất hiện một record mới với trường name và agecó giá trị lần lượt là Lê Hoàng Anh và 25.