Các hàm PHP MySQLi cung cấp để truy cập các máy chủ cơ sở dữ liệu MySQLi. PHP hoạt động với MySQLi phiên bản 4. 1. 13 hoặc mới hơn
Cài đặt
Tiện ích mở rộng MySQLi đã được giới thiệu với phiên bản PHP 5. 0. 0 và Trình điều khiển gốc MySQLi đã được bao gồm trong phiên bản PHP 5. 3. 0
Ghi chú. Để có đầy đủ chức năng của các phiên bản MySQL lớn hơn 4. 1. , hãy sử dụng tiện ích mở rộng MySQLi để thay thế. Nếu bạn muốn cài đặt cả tiện ích mở rộng mysql và tiện ích mở rộng mysqli, bạn nên sử dụng cùng một thư viện máy khách để tránh mọi xung đột
Cài đặt trên hệ thống Linux
PHP5+. MySQL và thư viện MySQL không được bật theo mặc định. Sử dụng tùy chọn cấu hình --with-mysql=DIR để bao gồm hỗ trợ MySQL và tải xuống các tiêu đề và thư viện từ www. mysql. com
Cài đặt trên hệ thống Windows
PHP5+. MySQL không được bật theo mặc định, vì vậy php_mysql. dll phải được kích hoạt bên trong php. ban đầu. Ngoài ra, PHP cần truy cập vào thư viện máy khách MySQL. Một tệp có tên libmysql. dll được bao gồm trong bản phân phối Windows PHP và để PHP giao tiếp với MySQL, tệp này cần có sẵn cho hệ thống Windows PATH
Để bật bất kỳ tiện ích mở rộng PHP nào, cài đặt PHP extension_dir [trong tệp php. ini] nên được đặt vào thư mục chứa các phần mở rộng PHP. Một ví dụ giá trị extension_dir là c. \php\ext
Ghi chú. Nếu bạn gặp lỗi sau khi khởi động máy chủ web. "Không thể tải thư viện động '. /php_mysql. dll'", điều này là do php_mysql. dll hoặc libmysql. dll không thể được tìm thấy bởi hệ thống
Cấu hình thời gian chạy
Hành vi của các chức năng MySQL bị ảnh hưởng bởi cài đặt trong php. tập tin ini
Tùy chọn cấu hình MySQL
NameDefaultDescriptionChangeablemysql. allow_persistent"1"Cho phép hay không cho phép kết nối liên tụcPHP_INI_SYSTEMmysql. max_persistent"-1"Số lượng kết nối liên tục tối đa trên mỗi quy trìnhPHP_INI_SYSTEMmysql. max_links"-1"Số lượng kết nối tối đa trên mỗi quy trình [bao gồm các kết nối liên tục]PHP_INI_SYSTEMmysql. trace_mode"0"Chế độ theo dõi. Khi được đặt thành "1", các cảnh báo và lỗi SQL sẽ được hiển thị. Có sẵn kể từ PHP 4. 3PHP_INI_ALLmysql. default_portNULLSố cổng TCP mặc định để sử dụngPHP_INI_ALLmysql. default_socketNULLTên socket mặc định sẽ sử dụng. Có sẵn kể từ PHP 4. 0. 1PHP_INI_ALLmysql. default_hostNULLMáy chủ lưu trữ mặc định sẽ sử dụng [không áp dụng ở chế độ an toàn SQL]PHP_INI_ALLmysql. default_userNULLTên người dùng mặc định sẽ sử dụng [không áp dụng trong chế độ an toàn của SQL]PHP_INI_ALLmysql. default_passwordNULLMật khẩu mặc định để sử dụng [không áp dụng trong chế độ an toàn của SQL]PHP_INI_ALLmysql. connect_timeout"60"Thời gian chờ kết nối tính bằng giâyPHP_INI_ALLLoại tài nguyên
Có hai loại tài nguyên được sử dụng trong phần mở rộng MySQL. Cái đầu tiên là link_identifier cho kết nối cơ sở dữ liệu, cái thứ hai là tài nguyên chứa kết quả của một truy vấn
Ghi chú. Hầu hết các hàm MySQL chấp nhận link_identifier làm tham số tùy chọn cuối cùng. Nếu nó không được cung cấp, kết nối được mở lần cuối sẽ được sử dụng
PHP. cho biết phiên bản PHP sớm nhất hỗ trợ chức năng
Hằng số MySQL PHP
Kể từ PHP 4. 3, có thể chỉ định các cờ bổ sung cho các hàm mysql_connect[] và mysql_pconnect[]
PHP. cho biết phiên bản PHP sớm nhất hỗ trợ hằng số
ConstantDescriptionPHPMYSQL_CLIENT_COMPRESSSử dụng giao thức nén4. 3MYSQL_CLIENT_IGNORE_SPACECho phép khoảng trống sau tên hàm4. 3MYSQL_CLIENT_INTERACTIVECho phép thời gian chờ tương tác giây không hoạt động trước khi đóng kết nối4. 3MYSQL_CLIENT_SSSLSử dụng mã hóa SSL [chỉ khả dụng với phiên bản 4+ của thư viện máy khách MySQL]4. 3Hàm mysql_fetch_array[] sử dụng hằng số cho các loại mảng kết quả khác nhau. Các hằng số sau đây được định nghĩa
Ví dụ sau đây chọn các cột id, firstname và lastname từ bảng MyGuests và hiển thị nó trên trang
Ví dụ [Hướng đối tượng MySQLi]
$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli[$servername, $username, $password, $dbname];
// Kiểm tra kết nối . ". $conn->connect_error];
if [$conn->connect_error] {
die["Connection failed: " . $conn->connect_error];
}
$sql = "CHỌN id, tên, họ TỪ MyGuests";
$result = $conn->query[$sql];
if [$result->num_rows > 0] {
// xuất dữ liệu của từng hàng
while[$row = $result-> . ". $row["id"]. " - Tên. ". $row["firstname"]. "". $row["họ"]. "
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
";
}
} other {
echo "0 results";close[];
?>
Các dòng mã để giải thích từ ví dụ trên
Đầu tiên, chúng tôi thiết lập một truy vấn SQL để chọn các cột id, firstname và lastname từ bảng MyGuests. Dòng mã tiếp theo chạy truy vấn và đặt dữ liệu kết quả vào một biến có tên $result
Sau đó, hàm num_rows[]
kiểm tra xem có nhiều hơn 0 hàng được trả về không
Nếu có nhiều hơn 0 hàng được trả về, hàm fetch_assoc[]
sẽ đặt tất cả các kết quả vào một mảng kết hợp mà chúng ta có thể lặp qua. Vòng lặp while[]
lặp qua tập kết quả và xuất dữ liệu từ các cột id, firstname và lastname
Ví dụ sau hiển thị giống như ví dụ trên, theo cách thủ tục MySQLi
Ví dụ [Thủ tục MySQLi]
$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";
// Tạo kết nối
$conn = mysqli_connect[$servername, $username, $password, $dbname];
// Kiểm tra kết nối< . $conn] {
if [!$conn] {
die["Kết nối không thành công. ". mysqli_connect_error[]];
}
$sql = "CHỌN id, tên, họ TỪ MyGuests";
$result = mysqli_query[$conn, $sql];
if [mysqli_num_rows[$result] > 0] {
// xuất dữ liệu của từng hàng
while[$row = mysqli_fetch_assoc[$result . ". $row["id"]. " - Tên. ". $row["firstname"]. "". $row["họ"]. "
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
";
}
} other {
echo "0 results";
Bạn cũng có thể đưa kết quả vào một bảng HTML
Ví dụ [Hướng đối tượng MySQLi]
$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";
// Tạo kết nối
$conn = new mysqli[$servername, $username, $password, $dbname];
// Kiểm tra kết nối . ". $conn->connect_error];
if [$conn->connect_error] {
die["Connection failed: " . $conn->connect_error];
}
$sql = "CHỌN id, tên, họ TỪ MyGuests";
$result = $conn->query[$sql];
if [$result->num_rows > 0] {
echo "";
// xuất dữ liệu của từng hàng
while[$row = $result->fetch_assoc[]] {
echo "";
}
echo "
} other {
echo "0 results";
}
$
?>Run example »
Chọn dữ liệu với PDO [+ Báo cáo đã chuẩn bị]
Ví dụ sau sử dụng câu lệnh đã chuẩn bị
Nó chọn các cột id, firstname và lastname từ bảng MyGuests và hiển thị nó trong bảng HTML