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 = "localhost";
$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 không thành công. ". $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
if [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 = "localhost";
$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
if [. $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 = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
thử {
$conn = new PDO["mysql. host=$servername;dbname=myDB", $username, $password];
// đặt chế độ lỗi PDO thành ngoại lệ
$conn->setAttribute[ . ATTR_ERRMODE, PDO. ERRMODE_EXCEPTION];
echo "Đã kết nối thành công";
} catch[PDOException $e] {
echo "Không kết nối được. ". $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
Câu lệnh include
[hoặc require
] lấy tất cả văn bản/mã/đánh dấu tồn tại trong tệp được chỉ định và sao chép nó vào tệp sử dụng câu lệnh bao gồm
Bao gồm các tệp rất hữu ích khi bạn muốn bao gồm cùng một PHP, HTML hoặc văn bản trên nhiều trang của trang web
PHP bao gồm và yêu cầu báo cáo
Có thể chèn nội dung của một tệp PHP vào một tệp PHP khác [trước khi máy chủ thực thi nó], với câu lệnh bao gồm hoặc yêu cầu
Các câu lệnh bao gồm và yêu cầu giống hệt nhau, ngoại trừ khi thất bại
require
sẽ tạo ra lỗi nghiêm trọng [E_COMPILE_ERROR] và dừng tập lệnhinclude
sẽ chỉ đưa ra cảnh báo [E_WARNING] và tập lệnh sẽ tiếp tục
Vì vậy, nếu bạn muốn quá trình thực thi tiếp tục và hiển thị cho người dùng kết quả, ngay cả khi tệp bao gồm bị thiếu, hãy sử dụng câu lệnh bao gồm. Mặt khác, trong trường hợp mã hóa ứng dụng FrameWork, CMS hoặc PHP phức tạp, hãy luôn sử dụng câu lệnh yêu cầu để đưa tệp khóa vào luồng thực thi. Điều này sẽ giúp tránh ảnh hưởng đến tính bảo mật và tính toàn vẹn của ứng dụng, chỉ trong trường hợp vô tình thiếu một tệp chính
Bao gồm các tập tin tiết kiệm rất nhiều công việc. Điều này có nghĩa là bạn có thể tạo tệp tiêu đề, chân trang hoặc menu tiêu chuẩn cho tất cả các trang web của mình. Sau đó, khi cần cập nhật tiêu đề, bạn chỉ có thể cập nhật tệp bao gồm tiêu đề
cú pháp
bao gồm 'tên tệp';
hoặc
yêu cầu 'tên tệp';
PHP bao gồm các ví dụ
ví dụ 1
Giả sử chúng ta có một tệp chân trang tiêu chuẩn có tên là "footer. php", trông như thế này
tiếng vang"
Bản quyền © 1999-". ngày ["Y"]. " W3Schools. com
";?>
Để bao gồm tệp chân trang trong một trang, hãy sử dụng câu lệnh include
Ví dụ
Một số tiếp theo
Một số văn bản khác
ví dụ 2
Giả sử chúng ta có một tệp menu tiêu chuẩn gọi là "menu. php"
echo 'Home -
Hướng dẫn HTML -
Hướng dẫn CSS -
Hướng dẫn JavaScript -
PHP Tutorial';
?>
Tất cả các trang trong trang Web nên sử dụng tệp menu này. Đây là cách nó có thể được thực hiện [chúng tôi đang sử dụng một
phần tử để menu có thể dễ dàng được tạo kiểu bằng CSS sau này]
Ví dụ
Một số tiếp theo
Một số văn bản khác
ví dụ 3
Giả sử chúng ta có một tệp tên là "vars. php", với một số biến được định nghĩa
$color='red';
$car='BMW';
?>
Sau đó, nếu chúng tôi bao gồm "vars. php", các biến có thể được sử dụng trong tệp gọi
Ví dụ
echo "Tôi có một chiếc ô tô $color. ";
?>
PHP bao gồm so với. yêu cầu
Câu lệnh require
cũng được sử dụng để đưa tệp vào mã PHP
Tuy nhiên, có một sự khác biệt lớn giữa bao gồm và yêu cầu;
Ví dụ
echo "Tôi có một chiếc ô tô $color. ";
?>
Nếu chúng ta thực hiện ví dụ tương tự bằng cách sử dụng câu lệnh require
, câu lệnh echo sẽ không được thực thi vì quá trình thực thi tập lệnh sẽ chết sau khi câu lệnh require
trả về một lỗi nghiêm trọng