Hướng dẫn what is mysqli - mysqli là gì

PHP có một bộ sưu tập của các hàm MySQLi được xây dựng sẵn để thao tác cơ sở dữ liệu.có một bộ sưu tập của các hàm MySQLi được xây dựng sẵn để thao tác cơ sở dữ liệu.

Trong bài này bạn sẽ được học về:

  • mysqli_connect function
  • mysqli_select_db function
  • mysqli_query function
  • mysqli_num_rows function
  • mysqli_fetch_array function
  • mysqli_close function
  • PHP Data Access Object PDO

Hướng dẫn what is mysqli - mysqli là gì

Cách thao tác với CSDL sử dụng hàm MySQLi trong PHP


1. Hàm mysqli_connect trong PHP

Hàm mysqli_connect được sử dụng để kết nối với một MySQL database server. mysqli_connect được sử dụng để kết nối với một MySQL database server. 

Hàm mysqli có cú pháp sau:

$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);   = mysqli_connect($db_server_name$db_user_name$db_password);
 


Giải thích cú pháp của hàm mysqli_connect:

  • $db_handle là biến sử dụng để kết nối với cơ sở dữ liệu.
  • mysqli_connect(...) là hàm cho phép php kết nối ới CSDL
  • $server_name là tên hoặc địa chỉ IP của hosting MySQL Server
  • $user_name là giá trị user name trong MySQL server

2. Hàm mysqli_select_db

Các hàm mysqli_select_db được sử dụng để chọn một cơ sở dữ liệu.mysqli_select_db được sử dụng để chọn một cơ sở dữ liệu.

Hàm mysqli_select có cú pháp như sau:

mysqli_select_db(connection, dbname);  (connection, dbname);
 


Giải thích hàm mysqli_select_db:

  • mysqli_select_db(...) là hàm lựa chọn cơ sở dữ liệu, trả về true hoặc false
  • connection Xác định kết nối MySQL để sử dụng
  • dbname Xác định cơ sở dữ liệu để được sử dụng

3. Hàm mysqli_query trong PHP

Các hàm mysqli_query() thực hiện một truy vấn đến databasemysqli_query() thực hiện một truy vấn đến database

Cú pháp hàm mysqli_query():

mysqli_query(connection, query, resultmode);  (connection, query, resultmode);
 


Giải thích về hàm mysqli_query():

  • conection chỉ định kết nối MySQL sử dụng
  • mysqli_connect(...)0 chỉ định chuỗi truy vấn
  • mysqli_connect(...)1 chỉ định chế độ của kết quả trả về (MYSQLI_STORE_RESULT là mặc định, còn nếu cần phải lấy số lượng lớn dữ liệu thì sử dụng MYSQLI_USE_RESULT)

Đối với kết quả truy vấn SELECT, SHOW, DESCRIBE, hoặc EXPLAIN thành công sẽ trả về object. Các kết quả truy vấn thành công khác trả về true. Nếu không thì trả về false.SELECT, SHOW, DESCRIBE, hoặc EXPLAIN thành công sẽ trả về object. Các kết quả truy vấn thành công khác trả về true. Nếu không thì trả về false.

> Các truy vấn được truyền vào là SQL. Nếu bạn chưa biết về SQL thì HỌC SQL CĂN BẢN tại đây nhé.HỌC SQL CĂN BẢN tại đây nhé.

4. Hàm mysqli_num_rows trong PHP

Các hàm mysqli_num_rows() trả về số lượng hàng trong một tập kết quả.mysqli_num_rows() trả về số lượng hàng trong một tập kết quả.

Cú pháp hàm mysqli_num_rows():



  • mysqli_connect(...)4 là tập hợp các kết quả trả về từ các hàm mysqli_query(), mysqli_store_result() hoặc mysqli_use_result()

5. Hàm mysqli_fetch_array trong PHP

Hàm mysqli_fetch_array() tìm nạp một hàng kết quả dưới dạng một mảng kết hợp, một mảng số hoặc cả hai.> Lưu ý: Các fieldname trả về từ hàm này là phân biệt hoa thường.mysqli_fetch_array() tìm nạp một hàng kết quả dưới dạng một mảng kết hợp, một mảng số hoặc cả hai.> Lưu ý: Các fieldname trả về từ hàm này là phân biệt hoa thường.

Cú pháp hàm mysquli_fetch_arry:

mysqli_fetch_array(result, resulttype);  (result, resulttype);
 


  • "result" là một tập hợp kết quả trả về từ các hàm mysqli_query(), mysqli_store_result() hoặc mysqli_use_result() là một tập hợp kết quả trả về từ các hàm mysqli_query(), mysqli_store_result() hoặc mysqli_use_result()
  • resulttype là tùy chọn. Chỉ định loại mảng nào sẽ được trả về. Có thể là một trong những giá trị sau: MYSQLI_ASSOC, MYSQLI_NUM, MYSQLI_BOTH

Hàm mysqli_fecth_array trả về một mảng chuỗi tương ứng với các lấy hàng. Null nếu không có thêm hàng nào trong kết quả trả về.

6. Hàm mysqli_close() trong PHP

Hàm mysqli_close() thực hiện việc đóng kết nối cơ sở dữ liệu đã kết nối trước đó.mysqli_close() thực hiện việc đóng kết nối cơ sở dữ liệu đã kết nối trước đó.

Cú pháp hàm mysqli_close():

mysqli_close(connection);  (connection);
 


  • "connection" chỉ định MySQL database sẽ đóng chỉ định MySQL database sẽ đóng

Giá trị trả về của hàm mysqli_close() là True nếu thành công và False nếu thất bạihàm mysqli_close()True nếu thành công và False nếu thất bại

7. Ví dụ sử dụng các hàm MySQLi đã cho để kết nối với cơ sở dữ liệu.

Hãy cùng xem các ví dụ thực tế tận dụng các hàm MySQLi này.

Trước tiên ta tạo một database bằng MySQL. Giả định bạn đã biết về MySQL và SQL. Nếu không thì bạn chỉ cần copy code là được.

Chúng ta sẽ tạo một cơ sở dữ liệu đơn giản gọi là mysqli_connect(...)5 chỉ với một bảng.

3 bước để tạo cơ sở dữ liệu và bảng:

  • Kết nối với MySQL bằng phpMyAdmin, v.v ... 
  • Tạo cơ sở dữ liệu có tên mysqli_connect(...)6
  • Thực thi tập lệnh hiển thị bên dưới để tạo bảng và chèn một số dữ liệu demo

CREATE TABLE IF NOT EXISTS `my_contacts` ( `my_contacts` (

`id` int(11) NOT NULL AUTO_INCREMENT, int(11) NOT NULL AUTO_INCREMENT,

`full_names` varchar(255) NOT NULL, varchar(255) NOT NULL,

`gender` varchar(6) NOT NULL, varchar(6) NOT NULL,

`contact_no` varchar(75) NOT NULL, varchar(75) NOT NULL,

`email` varchar(255) NOT NULL,  varchar(255) NOT NULL,

`city` varchar(255) NOT NULL, varchar(255) NOT NULL,

`country` varchar(255) NOT NULL, varchar(255) NOT NULL,

PRIMARY KEY (`id`)KEY (`id`)

) ENGINE = InnoDB  DEFAULT CHARSET = latin1 AUTO_INCREMENT = 5 ;5 ;

INSERT INTO `my_contacts` (`my_contacts` (

`id`,,

`full_names`, ,

`gender`,,

`contact_no`,,

`email`,,

`city`,,

`country`))

VALUES

(1, 'Zeus', 'Male', '111', '', 'Agos', 'Greece'),1'Zeus''Male''111''''Agos''Greece'),

(2, 'Anthena', 'Female', '123', '', 'Athens', 'Greece'),2'Anthena''Female''123''''Athens''Greece'),

(3, 'Jupiter', 'Male', '783', '', 'Rome', 'Italy'),3'Jupiter''Male''783''''Rome''Italy'),

(4, 'Venus', 'Female', '987', 'venu @planet.pt.co', 'Mars', 'Italy');4'Venus''Female''987''venu @planet.pt.co''Mars''Italy');

?>  >
 


Bây giờ chúng ta có một cơ sở dữ liệu được thiết lập mà chúng ta sẽ thao tác từ PHP. 

Đọc các bản ghi từ cơ sở dữ liệu. Bây giờ chúng ta sẽ tạo một chương trình in các bản ghi từ cơ sở dữ liệu.

$dbh = mysqli_connect('localhost', 'root', 'melody');  = mysqli_connect('localhost''root''melody'); 

// Kết nối tới MySQL server

if (!$dbh)       (!$dbh)     

die("Unable to connect to MySQL: " . mysqli_error());("Unable to connect to MySQL: " . mysqli_error());

// Nếu kết nối thất bại thì đưa ra thông báo lỗi

if (!mysqli_select_db($dbh,'my_personal_contacts'))      (!mysqli_select_db($dbh,'my_personal_contacts'))     

die("Unable to select database: " . mysqli_error()); ("Unable to select database: " . mysqli_error());

// Thông báo lỗi nếu chọn CSDL thất bại

$sql_stmt = "SELECT * FROM my_contacts";  = "SELECT * FROM my_contacts"

// Câu lệnh select

$result = mysqli_query($dbh,$sql_stmt); = mysqli_query($dbh,$sql_stmt);

// Thực thi câu lệnh SQL

if (!$result)      (!$result)     

die("Database access failed: " . mysqli_error()); ("Database access failed: " . mysqli_error()); 

// Thông báo lỗi nếu thực thi thất bại

$rows = mysqli_num_rows($result);  = mysqli_num_rows($result); 

// Lấy số hàng trả về

if ($rows) {  ($rows) {

while ($row = mysqli_fetch_array($result)) {          ($row = mysqli_fetch_array($result)) {         

echo 'ID: ' . $row['id'] . '';          'ID: ' . $row['id'] . '
'
;         

echo 'Full Names: ' . $row['full_names'] . '';          'Full Names: ' . $row['full_names'] . '
'
;        

echo 'Gender: ' . $row['gender'] . '';          'Gender: ' . $row['gender'] . '
'
;         

echo 'Contact No: ' . $row['contact_no'] . '';          'Contact No: ' . $row['contact_no'] . '
'
;         

echo 'Email: ' . $row['email'] . '';           'Email: ' . $row['email'] . '
'
;         

echo 'City: ' . $row['city'] . '';          'City: ' . $row['city'] . '
'
;         

echo 'Country: ' . $row['country'] . '';      'Country: ' . $row['country'] . '

'
;     

mysqli_close($dbh); // Đóng kết nối CSDL($dbh); // Đóng kết nối CSDL

?>  >
 


Bây giờ chúng ta có một cơ sở dữ liệu được thiết lập mà chúng ta sẽ thao tác từ PHP. 

Hướng dẫn what is mysqli - mysqli là gì

Đọc các bản ghi từ cơ sở dữ liệu. Bây giờ chúng ta sẽ tạo một chương trình in các bản ghi từ cơ sở dữ liệu.

// Kết nối tới MySQL server

if (!$dbh)     

$dbh = mysqli_connect('localhost', 'root', 'melody');  = mysqli_connect('localhost''root''melody'); 

// Nếu kết nối thất bại thì đưa ra thông báo lỗi

if (!$dbh)      (!$dbh)     

die("Unable to select database: " . mysqli_error()); ("Unable to connect to MySQL: " . mysqli_error()); 

// Thông báo lỗi nếu chọn CSDL thất bại

if (!mysqli_select_db($dbh, 'my_personal_contacts'))      (!mysqli_select_db($dbh'my_personal_contacts'))     

die("Unable to select database: " . mysql_error()); ("Unable to select database: " . mysql_error()); 

// Thông báo lỗi nếu chọn CSDL thất bại

// Câu lệnh select = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"

$sql_stmt .= "VALUES('Poseidon','Mail','541','  ','Troy','Ithaca')";  .= "VALUES('Poseidon','Mail','541','  ','Troy','Ithaca')"

// Thực thi câu lệnh SQL = mysqli_query($dbh$sql_stmt); // Thực thi câu lệnh SQL

if (!$result) { (!$result) {

// Thông báo lỗi nếu thực thi thất bại("Adding record failed: " . mysqli_error()); 

// Lấy số hàng trả về

} else {else {

echo "Poseidon has been successfully added to your contacts list"; "Poseidon has been successfully added to your contacts list";

if ($rows) {

echo 'Full Names: ' . $row['full_names'] . '';         ($dbh); // Đóng kết nối CSDL 

?>  >
 


echo 'Email: ' . $row['email'] . '';         

mysqli_close($dbh); // Đóng kết nối CSDL

Thực thi đoạn code trên trả về kết quả được hiển thị như trong hình bên dưới đây.

Giả sử Poseidon đã thay đổi số điện thoại và địa chỉ email của mình.

$dbh = mysqli_connect('localhost', 'root', 'melody');   = mysqli_connect('localhost''root''melody'); 

// Kết nối tới MySQL Server

if (!$dbh)     (!$dbh)    

die("Unable to connect to MySQL: " . mysqli_error()); ("Unable to connect to MySQL: " . mysqli_error()); 

// Thông báo lỗi nếu kết nối thất bại 

if (!mysqli_select_db($dbh,'my_personal_contacts'))       (!mysqli_select_db($dbh,'my_personal_contacts'))     

die("Unable to select database: " . mysql_error()); ("Unable to select database: " . mysql_error()); 

// Thông báo lỗi nếu chọn CSDL thất bại

$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ''"; = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ''";

$sql_stmt .= "WHERE `id` = 5";  .= "WHERE `id` = 5";

$result = mysqli_query($dbh,$sql_stmt); = mysqli_query($dbh,$sql_stmt);

// Thực thi câu lệnh SQL

if (!$result) { (!$result) {

die("Deleting record failed: " . mysqli_error());("Deleting record failed: " . mysqli_error());

// Thông báo lỗi nếu thực thi thất bại

} else {else {

echo "ID number 5 has been successfully updated";  "ID number 5 has been successfully updated";

}

mysqli_close($dbh); //close the database connection($dbh); //close the database connection

?>  >
 


Xóa bản ghi

Bây giờ hãy xem một ví dụ loại bỏ các bản ghi khỏi cơ sở dữ liệu. Chúng ta phải xóa Venus khỏi cơ sở dữ liệu của chúng ta.

$dbh = mysqli_connect('localhost', 'root', 'melody');   = mysqli_connect('localhost''root''melody'); 

// Kết nối với MySQL Server

if (!$dbh)      (!$dbh)     

die("Unable to connect to MySQL: " . mysqli_error()); ("Unable to connect to MySQL: " . mysqli_error()); 

// Thông báo lỗi nếu kết nối thất bại

if (!mysqli_select_db($dbh,'my_personal_contacts'))       (!mysqli_select_db($dbh,'my_personal_contacts'))     

die("Unable to select database: " . mysqli_error()); ("Unable to select database: " . mysqli_error()); 

// Thông báo lỗi nếu chọn CSDL thất bại

$id = 4;  = 4

$sql_stmt .= "WHERE `id` = 5";

// Thực thi câu lệnh SQL = "DELETE FROM `my_contacts` WHERE `id` = $id"

// Thông báo lỗi nếu thực thi thất bại

$result = mysqli_query($dbh,$sql_stmt);  = mysqli_query($dbh,$sql_stmt); 

// Thực thi câu lệnh SQL

if (!$result) { (!$result) {

die("Deleting record failed: " . mysqli_error());("Deleting record failed: " . mysqli_error());

// Thông báo lỗi nếu thực thi thất bại

} else {else {

echo "ID number $id has been successfully deleted"; "ID number $id has been successfully deleted";

}

?>  ($dbh); // Đóng kết nối CSDL

?>  >
 


Xóa bản ghi

Bây giờ hãy xem một ví dụ loại bỏ các bản ghi khỏi cơ sở dữ liệu. Chúng ta phải xóa Venus khỏi cơ sở dữ liệu của chúng ta.

// Kết nối với MySQL Server

// Thông báo lỗi nếu kết nối thất bại

try {     {    

// ID của Venus trong CSQL = new PDO("mysql:host=localhost;dbname=my_personal_contacts"'root''melody');

$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$pdo -> exec('SET NAMES "utf8"');-> exec('SET NAMES "utf8"');

$sql_stmt = "SELECT * FROM `my_contacts`"; = "SELECT * FROM `my_contacts`";

$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id";   = $pdo->query($sql_stmt);

$result -> setFetchMode(PDO::FETCH_ASSOC);-> setFetchMode(PDO::FETCH_ASSOC);

$data = array(); = array();

foreach ($result as $row) { ($result as $row) {

$data[] = $row;[] = $row;

}

print_r($data);($data);

}

catch (PDOException $e) { (PDOException $e) {

?>   $e -> getMessage();

}

?>  >
 



  • Xóa bản ghi
  • Bây giờ hãy xem một ví dụ loại bỏ các bản ghi khỏi cơ sở dữ liệu. Chúng ta phải xóa Venus khỏi cơ sở dữ liệu của chúng ta.
  • // Kết nối với MySQL Server
  • // Thông báo lỗi nếu kết nối thất bại

// ID của Venus trong CSQL

$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id";   = odbc_connect($dsn$user_name$password);
 



  • // Câu lệnh SQL Delete
  • // Thông báo lỗi nếu thực thi thất bại 
  • mysqli_close($dbh); // Đóng kết nối CSDL
  • 8. Truy cập dữ liệu bằng cách sử dụng PDO trong PHP

PDO là một class cho phép chúng ta thao tác với các cơ sở dữ liệu khác nhau như MySQL, PostGres, MS SQL Server, v.v ... 

  • Đoạn code dưới đây cho thấy phương thức truy cập cơ sở dữ liệu bằng cách sử dụng PDO.
  • Chú ý: Đoạn code dưới đây giả định bạn đã biết kiến thức SQL, mảng, xử lý ngoại lệ và vòng lặp foreach

$dbh = odbc_connect('northwind', '', ''); = odbc_connect('northwind''''');

if (!$dbh) {      (!$dbh) {     

exit("Connection Failed: " . $dbh);  ("Connection Failed: " . $dbh); 

}

$sql_stmt = "SELECT * FROM customers";  = "SELECT * FROM customers"

$result = odbc_exec($dbh, $sql_stmt); = odbc_exec($dbh$sql_stmt);

if (!$result) { (!$result) {

exit("Error access records"); ("Error access records"); 

while (odbc_fetch_row($result)) {  (odbc_fetch_row($result)) {

$company_name = odbc_result($result, "CompanyName");     = odbc_result($result"CompanyName");    

$contact_name = odbc_result($result, "ContactName");      = odbc_result($result"ContactName");     

echo "Company Name (Contact Person): $company_name ($contact_name) ";  "Company Name (Contact Person): $company_name ($contact_name
"
;

}

odbc_close($dbh);($dbh);

while (odbc_fetch_row($result)) { >
 


echo "Company Name (Contact Person): $company_name ($contact_name) ";

?>  hàm MySQLi cơ bản để sử dụng thao tác với CSDL trong PHP, cũng như cách thức sử dụng PDO để thay thế.

  • Tổng kết là một hệ quản trị cơ sở dữ liệu quan hệ nguồn mở có sẵn trên hầu hết các máy chủ lưu trữ web
  • Qua bài hướng dẫn này bạn đã biết các hàm MySQLi cơ bản để sử dụng thao tác với CSDL trong PHP, cũng như cách thức sử dụng PDO để thay thế.
  • MySQL là một hệ quản trị cơ sở dữ liệu quan hệ nguồn mở có sẵn trên hầu hết các máy chủ lưu trữ web là từ viết tắt của PHP Data Object, nó được sử dụng để kết nối với các cơ sở dữ liệu khác nhau bằng cùng một đối tượng
  • PHP có một bộ sưu tập các hàm dựng sẵn phong phú giúp đơn giản hóa việc làm việc với MySQL

PDO là từ viết tắt của PHP Data Object, nó được sử dụng để kết nối với các cơ sở dữ liệu khác nhau bằng cùng một đối tượngLẬP TRÌNH WEB PHP. Khóa học do doanh nghiệp liên kết đào tạo nhân lực, học thực tế, tuyển dụng ngay cuối khóa.

PHP sử dụng hàm odbc_connect để thao tác cơ sở dữ liệu thông qua ODBC

> Nếu bạn đang tích cực học PHP để đi làm thì nên tham gia ngay khóa học LẬP TRÌNH WEB PHP. Khóa học do doanh nghiệp liên kết đào tạo nhân lực, học thực tế, tuyển dụng ngay cuối khóa.

---

HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI

Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!

Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội

SĐT: 02435574074 - 0914939543

Email: