MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở hàng đầu. Nó là một hệ thống quản lý cơ sở dữ liệu đa người dùng, đa luồng. MySQL đặc biệt phổ biến trên web. Nó là một trong những phần của nền tảng LAMP rất phổ biến. Linux, Apache, MySQL và PHP. Hiện tại MySQL thuộc sở hữu của Oracle. Cơ sở dữ liệu MySQL có sẵn trên hầu hết các nền tảng hệ điều hành quan trọng. Nó chạy trên BSD Unix, Linux, Windows hoặc Mac OS
Tiện ích mở rộng MySQLi [MySQL được cải tiến] là trình điều khiển cơ sở dữ liệu quan hệ được sử dụng trong ngôn ngữ kịch bản PHP để cung cấp giao diện với cơ sở dữ liệu MySQL. Nó cung cấp cả API hướng đối tượng và thủ tục. Các cách khác để tương tác với MySQL là. Giải pháp PDO và ORM
Mô-đun Đối tượng Dữ liệu PHP
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];3 là lớp trừu tượng hóa cơ sở dữ liệu cho các ứng dụng PHP. Mô-đun này có lợi nếu chúng ta viết tập lệnh PHP cơ sở dữ liệu di động
Ngoài ra còn có các giải pháp ORM để làm việc với MySQL trong PHP như Doctrine hoặc Eloquent
$ sudo apt install php8.1-mysql
Chúng tôi cài đặt mô-đun
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];4. Một
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];5 được tạo trong khi cài đặt, khi tiện ích mở rộng được bật
Trong ví dụ sau, chúng tôi xác định phiên bản của cơ sở dữ liệu MySQL
connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];
Ví dụ in phiên bản MySQL
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];
Một kết nối đến cơ sở dữ liệu được tạo. Lớp
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];6 lấy tên máy chủ, tên người dùng, mật khẩu và tên cơ sở dữ liệu làm đối sốQuảng cáo
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];7 chứa giá trị mã lỗi nếu nỗ lực kết nối không thành công. Nó bằng 0 nếu không có lỗi xảy ra. Phương thức
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];8 trả về mô tả chuỗi về lỗi kết nối cuối cùng
$res = $con->query["SELECT VERSION[]"];
Phương thức
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];9 thực hiện một truy vấn trên cơ sở dữ liệu. Câu lệnh
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }0 trả về phiên bản của MySQL
if [$res] { $row = $res->fetch_row[]; echo $row[0]; }
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }1 trả về một hàng kết quả dưới dạng một mảng liệt kê. Kết quả của chúng tôi chỉ chứa một giá trị
$res->close[]; $con->close[];
Cuối cùng, chúng tôi giải phóng các tài nguyên
$ php version.php 8.0.29-0ubuntu0.22.04.2
Đây là một đầu ra mẫu
Trình điều khiển
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];6 cũng hỗ trợ kiểu lập trình thủ tục
The example returns the version of MySQL with procedural functions.
AdvertisementsPHP mysqli create table
The following example creates a new database table. A table is created with the
CREATE TABLE
statement. Rows are added to the table with theINSERT INTO
statements.query[$query]; if [!$res] { echo "failed to execute query: $query\n"; } else { echo "Query: $query executed\n"; } if [is_object[$res]] { $res->close[]; } } $con = new mysqli[$host, $user, $passwd, $db]; if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $query = "DROP TABLE IF EXISTS cars"; execute_query[$query, $con]; $query = "CREATE TABLE cars[id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR[255], price INT]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Audi', 52642]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Mercedes', 57127]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Skoda', 9000]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Volvo', 29000]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Bentley', 350000]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Citroen', 21000]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Hummer', 41400]"; execute_query[$query, $con]; $query = "INSERT INTO cars[name, price] VALUES['Volkswagen', 21600]"; execute_query[$query, $con]; $con->close[];Ví dụ tạo bảng
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }3 có tám hàngCâu lệnh chuẩn bị PHP mysqli
Khi chúng tôi viết các câu lệnh đã chuẩn bị, chúng tôi sử dụng các trình giữ chỗ thay vì viết trực tiếp các giá trị vào các câu lệnh. Báo cáo được chuẩn bị tăng tính bảo mật và hiệu suất. Trong mysqli, hàm
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }4 chuẩn bị một câu lệnh SQL để thực thi$ sudo apt install php8.1-mysql0Ví dụ chọn một hàng cụ thể từ bảng. Nó sử dụng một tuyên bố chuẩn bị
$ sudo apt install php8.1-mysql1Khi chúng tôi viết các câu lệnh đã chuẩn bị, chúng tôi sử dụng các trình giữ chỗ thay vì viết trực tiếp các giá trị vào các câu lệnh. Các câu lệnh đã chuẩn bị nhanh hơn và bảo vệ chống lại các cuộc tấn công SQL injection.
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }5 là phần giữ chỗ, sẽ được điền sau. Trong trường hợp của chúng tôi, chúng tôi có một giá trị. id số nguyên$ sudo apt install php8.1-mysql2Giá trị của biến
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }6 được liên kết với trình giữ chỗ bằng phương thứcif [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }7. Tham số đầu tiên chỉ định loại biến; Quảng cáo$ sudo apt install php8.1-mysql3Tuyên bố được thực hiện
$ sudo apt install php8.1-mysql4if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }8 liên kết các giá trị được trả về với các biến đã chỉ định$ sudo apt install php8.1-mysql5Chúng tôi in các biến đến thiết bị đầu cuối
$ sudo apt install php8.1-mysql6Chúng tôi đóng tuyên bố
$ sudo apt install php8.1-mysql7Đây là đầu ra
Tìm nạp PHP mysqli
Phương thức
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }1 lấy một hàng dữ liệu từ tập kết quả và trả về dưới dạng một mảng liệt kê. Mỗi cột được lưu trữ trong một mảng offset bắt đầu từ$res = $con->query["SELECT VERSION[]"];0. Mỗi lần gọi hàm này tiếp theo sẽ trả về hàng tiếp theo trong tập kết quả hoặc$res = $con->query["SELECT VERSION[]"];1 nếu không còn hàng nào nữa$ sudo apt install php8.1-mysql8Ví dụ trả về tất cả các hàng từ bảng
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }3$ sudo apt install php8.1-mysql9Truy vấn CHỌN này chọn tất cả các hàng từ bảng
connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];0Chúng tôi thực hiện truy vấn CHỌN với phương thức
$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];9connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];1Số lượng hàng trả về được lưu trữ trong thuộc tính
$res = $con->query["SELECT VERSION[]"];4connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];2Với vòng lặp
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }1 trong vòng lặp while, chúng tôi tìm nạp tất cả các hàng từ bảngconnect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];3Đây là đầu ra
quảng cáo PHP mysqli fetch_assoc
$res = $con->query["SELECT VERSION[]"];6 trả về một mảng chuỗi kết hợp đại diện cho hàng được tìm nạp trong tập kết quả. Mỗi khóa trong mảng đại diện cho tên của một trong các cột của tập hợp kết quả hoặc$res = $con->query["SELECT VERSION[]"];1 nếu không cóconnect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];4Ví dụ trả về tất cả các hàng từ bảng
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }3connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];5Khi chúng tôi sử dụng
$res = $con->query["SELECT VERSION[]"];6, chúng tôi đề cập đến các cột thông qua ký hiệu mảngPHP mysqli fetch_object
if [$res] { $row = $res->fetch_row[]; echo $row[0]; }0 trả về một đối tượng có thuộc tính chuỗi tương ứng với hàng đã tìm nạp hoặc$res = $con->query["SELECT VERSION[]"];1 nếu không còn nữaconnect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];6Ví dụ trả về tất cả các hàng từ bảng
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }3Quảng cáoconnect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];7Khi chúng tôi sử dụng
if [$res] { $row = $res->fetch_row[]; echo $row[0]; }0, chúng tôi đề cập đến các cột thông qua ký hiệu truy cập đối tượngVí dụ tiếp theo in tên cột với dữ liệu từ bảng cơ sở dữ liệu. Chúng tôi gọi tên cột là dữ liệu meta
connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];8Ví dụ in tất cả các hàng của bảng
if [$con->connect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; }3 với các tiêu đề cộtconnect_errno] { printf["connection failed: %s\n", $con->connect_error[]]; exit[]; } $res = $con->query["SELECT VERSION[]"]; if [$res] { $row = $res->fetch_row[]; echo $row[0]; } $res->close[]; $con->close[];9Thuộc tính
$res = $con->query["SELECT VERSION[]"];4 trả về số hàng trong kết quả.if [$res] { $row = $res->fetch_row[]; echo $row[0]; }6 trả về số trường trong kết quả$con = new mysqli["localhost", "dbuser", "passwd", "mydb"];0Phương thức
if [$res] { $row = $res->fetch_row[]; echo $row[0]; }7 trả về một mảng các đối tượng đại diện cho các trường trong tập kết quả. Đây là những tên cộtLàm cách nào để bật tiện ích mở rộng MySQLi trong PHP 8?
ini sang php. ini và bật tiện ích mở rộng bằng cách xóa dấu chấm phẩy trong php. tệp ini . Đừng quên khởi động lại máy chủ [Apache hoặc Ngnix] sau khi cập nhật php.Làm cách nào để kết nối với MySQLi trong PHP?
Đây là hai bước để kết nối PHP với cơ sở dữ liệu MySQL. .Kết nối các ứng dụng PHP với MySQL [và MariaDB]Truy xuất thông tin máy chủ cơ sở dữ liệuQuản lý lỗi được tạo từ các cuộc gọi cơ sở dữ liệuLàm việc với các bản ghi cơ sở dữ liệu bằng các chức năng Tạo, Đọc, Cập nhật và Xóa [CRUD]PHP có hỗ trợ MySQL 8 không?
MySQL và PHP là một câu chuyện tình bắt đầu từ lâu. Tuy nhiên chuyện tình với MySQL 8. 0 bắt đầu chậm hơn một chút… nhưng đừng lo, giờ nó đã ổn định. Sự hỗ trợ của MySQL 8. Phương thức xác thực mặc định mới của 0 trong PHP đã mất một thời gian và đã được thêm vào trong PHP 7. 2 .Phiên bản PHP nào hỗ trợ MySQLi?
Tiện ích mở rộng MySQLi được giới thiệu với phiên bản PHP 5. 0. 0 . Trình điều khiển bản địa MySQL đã được bao gồm trong phiên bản PHP 5. 3. 0.