Hướng dẫn pdo and mysqli difference - sự khác biệt giữa pdo và mysqli
Ngày đăng:
21/11/2022
Trả lời:
0
Lượt xem:
135
Show
Đã đăng vào thg 8 19, 2019 6:57 SA 6 phút đọc 6 phút đọc Khi thao tác với cơ sở dữ liệu MySQL, PHP cung cấp cho ta 3 thư viện đó là MySQL, MySQLi và PDO. Tuy nhiên thư viện MySQL đã không còn được hỗ trợ và bị xóa hoàn toàn trong các phiên bản PHP 7 trở lên, vì thế ở bài hôm nay mình sẽ chỉ giới thiệu đến các bạn 2 thư viện MySQLi và PDO. Cài đặt
So sánh MySQLi và PDOTóm lược
Không
Cao
MySQL 3.x/4.x/5.x
SQLite 3 and SQLite 2
Cú pháp của việc sử dụng liên kết tham số với dấu ? có vẻ ngắn hơn nhưng nó không linh hoạt như khi sử dụng named parameters vì thực tế ta sẽ phải theo dõi thứ tự tham số và việc này sẽ gây khó khăn cho dev khi có nhiều tham số.
Ánh xạ đối tượng cho phép chúng ta xác định trước các thuộc tính này trước khi đối tượng được xây dựng!$query = "SELECT id, first_name, last_name FROM users"; // PDO $result = $pdo->query($query); $result->setFetchMode(PDO::FETCH_CLASS, 'User'); while ($user = $result->fetch()) { echo $user->info()."\n"; } // MySQLI, procedural way if ($result = mysqli_query($mysqli, $query)) { while ($user = mysqli_fetch_object($result, 'User')) { echo $user->info()."\n"; } } // MySQLi, object oriented way if ($result = $mysqli->query($query)) { while ($user = $result->fetch_object('User')) { echo $user->info()."\n"; } }
Cả hai thư viện đều cung cấp phương pháp bảo mật tránh tấn công bằng SQL Injection.
Nên sử dụng MySQLi hay PDO
Nếu thay đổi hoặc sử dụng nhiều DB thì với MySQli, ta sẽ phải học thêm các thư viện với mỗi loại DB còn lại, còn với PDO thì ta chỉ cần duy nhất PDO là đủ. Như thế tiết kiệm được thời gian để làm chủ các thư viện.
Ưu điểm thứ 3 của PDO so với MySQLi chính là Named Parameters. Phần này mình đã nêu rõ ở trên, các bạn có thể lướt lên để xem lại. |