Php 5 trở lên có thể làm việc với cơ sở dữ liệu MySQL bằng cách sử dụng:
- Mở rộng mysqli ("i" là viết tắt của cải tiến) (the "i" stands for improved)
- PDO (Đối tượng dữ liệu PHP)
Các phiên bản trước của PHP đã sử dụng tiện ích mở rộng MySQL. Tuy nhiên, phần mở rộng này đã bị phản đối trong năm 2012.
Tôi nên sử dụng mysqli hay pdo?
Nếu bạn cần một câu trả lời ngắn, đó sẽ là "bất cứ điều gì bạn thích".
Cả MySQLI và PDO đều có lợi thế của họ:
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 đổi dự án của mình để sử dụng cơ sở dữ liệu khác, PDO sẽ làm cho quá trình 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ộ mã - các truy vấn bao gồm.
Cả hai đều theo định hướng đối tượng, nhưng MySQLI cũng cung cấp API thủ tục.
Cả hai hỗ trợ các tuyên bố đã chuẩn bị. Các tuyên bố được chuẩn bị bảo vệ khỏi SQL Injection và rất quan trọng đối với bảo mật ứng dụng web.
Ví dụ MySQL trong cả cú pháp MySQLI và PDO
Trong đó, và trong các chương sau, chúng tôi đã chứng minh ba cách làm việc với PHP và MySQL:
- Mysqli (hướng đối tượng)
- Mysqli (thủ tục)
- PDO
Cài đặt MySQLI
Đối với Linux và Windows: Phần mở rộng MySQLI được tự động cài đặt trong hầu hết các trường hợp, khi gói HYSQL PHP5 được cài đặt.
Để biết chi tiết cài đặt, hãy truy cập: //php.net/manual/en/mysqli.installation.php
Cài đặt PDO
Để biết chi tiết cài đặt, hãy truy cập: //php.net/manual/en/pdo.installation.php
Mở kết nối với MySQL
Trước khi chúng tôi có thể truy cập dữ liệu trong cơ sở dữ liệu MySQL, chúng tôi cần có thể kết nối với máy chủ:
Ví dụ (hướng đối tượng mysqli) theo định hướng đối tượng)
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
Lưu ý trên ví dụ hướng đối tượng ở trên:
$ Connect_error đã bị hỏng cho đến khi Php 5.2.9 và 5.3.0. 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, hãy sử dụng mã sau thay thế:
// Kiểm tra Connectionif (mysqli_connect_error ()) {& nbsp; & nbsp; die ("Kết nối cơ sở dữ liệu không thành công:".
if (mysqli_connect_error()) {
die("Database connection failed: " . mysqli_connect_error());
}
Ví dụ (thủ tục MySQLI)
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
Lưu ý trên ví dụ hướng đối tượng ở trên:
// kiểm tra kết nối if ($ Conn-> Connect_error) & nbsp; ?> In the PDO example above we have also specified a database (myDB). PDO require a valid database to connect to. If no database is specified, an exception is thrown.
Lưu ý trên ví dụ hướng đối tượng ở trên: A great benefit of PDO is that it has an exception class to handle any problems that may occur in our database queries. If an exception is thrown within the try{ } block, the script stops executing and flows directly to the first catch(){ } block.
$ Connect_error đã bị hỏng cho đến khi Php 5.2.9 và 5.3.0. 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, hãy sử dụng mã sau thay thế:
// Kiểm tra Connectionif (mysqli_connect_error ()) {& nbsp; & nbsp; die ("Kết nối cơ sở dữ liệu không thành công:".
Ví dụ (thủ tục MySQLI)
// Tạo kết nối $ Conn = mysqli_connect ($ servername, $ username, $ password);
// kiểm tra kết nối if (! $ Conn) & nbsp; {& nbsp; chết ("kết nối không thành công:". mysqli_connect_error ());} echo "kết nối thành công"; ?>
Ví dụ (PDO)
❮ Php mysqli tham khảo
Ví dụ - Phong cách định hướng đối tượng
Mở kết nối mới đến máy chủ MySQL:
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}
?>
Nhìn vào ví dụ về phong cách thủ tục ở phía dưới.
Định nghĩa và cách sử dụng
Hàm Connect () / mySQLI_Connect () mở kết nối mới đến máy chủ MySQL.
Cú pháp
Phong cách định hướng đối tượng:
$ mysqli -> mysqli mới (máy chủ, tên người dùng, mật khẩu, dbname, cổng, ổ cắm)
Phong cách thủ tục:
mysqli_connect (máy chủ, tên người dùng, mật khẩu, dbname, cổng, ổ cắm)
Giá trị tham số
chủ nhà | Không bắt buộc. Chỉ định tên máy chủ hoặc địa chỉ IP |
tên tài khoản | Không bắt buộc. Chỉ định tên người dùng MySQL |
mật khẩu mở khóa | Không bắt buộc. Chỉ định mật khẩu MySQL |
DBNAME | Không bắt buộc. Chỉ định cơ sở dữ liệu mặc định sẽ được sử dụng |
Hải cảng | Không bắt buộc. Chỉ định số cổng để cố gắng kết nối với máy chủ MySQL |
ổ cắm | Không bắt buộc. Chỉ định ổ cắm hoặc đường ống được đặt tên sẽ được sử dụng |
Chi tiết kỹ thuật
Trả về một đối tượng đại diện cho kết nối với máy chủ MySQL |
5+ |
Ví dụ - Phong cách thủ tục
Mở kết nối mới đến máy chủ MySQL:
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
?>
❮ Php mysqli tham khảo