Trong bài viết này tôi sẽ nói về một phần quan trọng trong bất kỳ một ứng dụng web nào. Đó chính là kết nối với cơ sở dữ liệu và cụ thể ở đây là MySql (PHP connect MySql).
Từ phiên bản PHP5 chúng ta có thể làm việc với MySql database bằng cách sử dụng:
- MySQLi extension
- PDO (PHP Data Objects)
Các phiên bản PHP trước đó thì sử dụng MySQL extension. Nhưng extension này đã được loại bỏ vào năm 2012.
Nên sử dụng mysqli hay PDO?
Nếu bạn cần một câu trả lời ngắn gọn, thì tôi có thể trả lời là bất cứ điều gì mà bạn thích.
Cả MySQLi và PDO đều có lợi thế riêng:
PDO sẽ hoạt động trên 12 hệ thống cơ sở dữ liệu khác nhau, trong khi MySQLi sẽ chỉ hoạt động với cơ sở dữ liệu MySQL.
Vì vậy, nếu bạn phải chuyển dự án của mình sang sử dụng cơ sở dữ liệu khác, PDO giúp quá trình này trở nên dễ dàng. Bạn chỉ phải thay đổi chuỗi kết nối và một vài truy vấn. Với MySQLi, bạn sẽ cần viết lại toàn bộ code – bao gồm các truy vấn.
Trong phần này, và trong các bài viết sau, tôi sẽ trình bày ba cách làm việc với PHP và MySQL:
- MySQLi (object-oriented)
- MySQLi (procedural)
- PDO
PHP connect Mysql
Trước khi chúng ta có thể truy cập dữ liệu trong cơ sở dữ liệu MySQL, chúng ta cần connect mysql:
1. PHP connect mysql với MySQLi Object-Oriented
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; ?> |
1 2 3 4 5 6 7 |
Lưu ý về ví dụ ở trên:<br> $connect_error đã bị hỏng cho đến phiên bản PHP 5.2.9 và 5.3.0.<br> Nếu bạn cần đảm bảo khả năng tương thích với các phiên bản PHP trước 5.2.9 và 5.3.0,<br> hãy sử dụng mã sau để thay thế: |
1 2 3 4 |
// Check connection if (mysqli_connect_error()) { die("Database connection failed: " . mysqli_connect_error()); } |
2. PHP connect mysql với MySQLi Procedural
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = mysqli_connect($servername, $username, $password); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; ?> |
3. PHP connect mysql với PDO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?> |
Một lợi ích lớn của PDO là nó có một lớp ngoại lệ để xử lý bất kỳ vấn đề nào có thể xảy ra trong các truy vấn cơ sở dữ liệu của chúng ta. Nếu một ngoại lệ được đưa ra trong khối try {}, tập lệnh sẽ ngừng thực thi và chuyển trực tiếp đến khối catch () {} đầu tiên.
Nếu thành công chúng sẽ như thế này:

Còn ngược lại sẽ như thế này:

Đóng connect mysql
Kết nối sẽ tự động đóng khi tập lệnh kết thúc. Để đóng kết nối trước đó, hãy sử dụng như sau:
1. MySQLi Object-Oriented
1 |
$conn->close(); |
2. MySQLi Procedural
1 |
mysqli_close($conn); |
3. PDO
1 |
$conn = null; |
Bài viết liên quan
Tham khảo: https://www.w3schools.com/php/php_mysql_connect.asp