Chuỗi kết nối có thể chứa tên hoặc địa chỉ Máy chủ, số Cổng và tên Cơ sở dữ liệu theo cú pháp sau
Máy chủ=Tên_máy chủ;Cổng=nnnnn;Cơ sở dữ liệu=Db_Name;
Các thuộc tính được phân tách bằng dấu chấm phẩy
Nếu tên máy chủ bị bỏ qua, máy chủ mặc định được cấu hình cục bộ sẽ được sử dụng
Cổng mặc định là 3307 hoặc cổng được định cấu hình cục bộ cho máy chủ MySQL cục bộ
Nếu tên cơ sở dữ liệu bị bỏ qua, tên được cấu hình cục bộ sẽ được sử dụng hoặc tên có thể được đặt trong mỗi câu lệnh SQL được chuẩn bị và thực thi
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 sẽ 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 phải viết lại toàn bộ mã - bao gồm cả truy vấn
Cả hai đều hướng đối tượng, nhưng MySQLi cũng cung cấp API thủ tục
Cả hai đều hỗ trợ Báo cáo đã chuẩn bị. Các câu lệnh đã 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
Các ví dụ về MySQL trong cả Cú pháp MySQLi và PDO
Trong phần này và trong các chương tiếp theo, chúng tôi trình bày 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. Tiện ích mở rộng MySQLi được cài đặt tự động trong hầu hết các trường hợp, khi gói mysql php5 được cài đặt
Để biết chi tiết cài đặt, hãy truy cập. http. //php. mạng/thủ công/en/mysqli. cài đặt. php
Cài đặt PDO
Để biết chi tiết cài đặt, hãy truy cập. http. //php. net/manual/en/pdo. cài đặt. php
Mở kết nối tớ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]
$servername = "máy chủ cục bộ";
$username = "tên người dùng";
$password = "mật khẩu";
// Tạo kết nối
$conn = new mysqli[$servername, $username, $password];
// Kiểm tra kết nối
if [$conn->connect_error] {
die["Kết nối thất bại. ". $conn->connect_error];
}
echo "Đã kết nối thành công";
?>
Lưu ý về 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 đoạn mã sau để thay thế
// Kiểm tra kết nối
nếu [mysqli_connect_error[]] {
die["Kết nối cơ sở dữ liệu không thành công. ". mysqli_connect_error[]];
}
Ví dụ [Thủ tục MySQLi]
$servername = "máy chủ cục bộ";
$username = "tên người dùng";
$password = "mật khẩu";
// Tạo kết nối
$conn = mysqli_connect[$servername, $username, $password];
// Kiểm tra kết nối
nếu [. $conn] {
die["Kết nối thất bại. ". mysqli_connect_error[]];
}
echo "Đã kết nối thành công";
?>
Ví dụ [PDO]
$servername = "máy chủ cục bộ";
$username = "tên người dùng";
$password = "mật khẩu";
cố gắng {
$conn = PDO mới["mysql. máy chủ=$servername;dbname=myDB", $username, $password];
// đặt chế độ lỗi PDO thành ngoại lệ
$conn->setAttribute[PDO. ATTR_ERRMODE, PDO. ERRMODE_EXCEPTION];
echo "Đã kết nối thành công";
} bắt[PDOException $e] {
tiếng vang "Kết nối không thành công. ". $e->getMessage[];
}
?>
Ghi chú. Trong ví dụ PDO ở trên, chúng tôi cũng đã chỉ định một cơ sở dữ liệu [myDB]. PDO yêu cầu cơ sở dữ liệu hợp lệ để kết nối với. Nếu không có cơ sở dữ liệu nào được chỉ định, một ngoại lệ sẽ được đưa ra
Mẹo. 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ỳ sự cố nào có thể xảy ra trong các truy vấn cơ sở dữ liệu của chúng tôi. 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
Đóng kết nối
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
❮ Tham chiếu PHP MySQLi
Ví dụ - Kiểu hướng đối tượng
Mở một kết nối mới đến máy chủ MySQL
$mysqli = new mysqli["localhost","my_user","my_password","my_db"];
// Kiểm tra kết nối
nếu [$mysqli -> connect_errno] {
echo "Không thể kết nối với MySQL. ". $mysqli -> connect_error;
lối ra[];
}
?>
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ở một kết nối mới tới máy chủ MySQL
cú pháp
Phong cách 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ố
Tham sốMô tảhostTùy chọn. Chỉ định tên máy chủ hoặc địa chỉ IPtên người dùngTùy chọn. Chỉ định tên người dùng MySQLmật khẩuTùy chọn. Chỉ định mật khẩu MySQLdbnameOptional. Chỉ định cơ sở dữ liệu mặc định được sử dụngportOptional. Chỉ định số cổng để cố gắng kết nối với ổ cắm máy chủ MySQLTùy chọn. Chỉ định ổ cắm hoặc đường ống được đặt tên sẽ được sử dụngchi tiết kỹ thuật
Giá trị trả về. Trả về một đối tượng đại diện cho kết nối đến máy chủ MySQLPhiên bản PHP. 5+Ví dụ - Kiểu thủ tục
Mở một kết nối mới đến máy chủ MySQL
$con = mysqli_connect["localhost","my_user","my_password","my_db"];
// Kiểm tra kết nối
nếu [mysqli_connect_errno[]] {
echo "Không thể kết nối với MySQL. ". mysqli_connect_error[];
lối ra[];
}
?>
❮ Tham chiếu PHP MySQLi