Chương 3.5 (phần 3) giúp người học hiểu về PHP-MySQL. Nội dung trình bày cụ thể gồm có: Để kết nối PHP – MySQL, đặc điểm, kết nối (MySQLi Object-Oriented), Die() – hàm hiển thị thông báo và dừng xử lý, kết nối (MySQLi Procedural),..
Trang 1Phần mềm Nguồn Mở
(Open-Source Software)
Võ Đức Quang Khoa CNTT-Đại học Vinh
Trang 2Chương 3:
Một số phần mềm nguồn mở
Trang 3Mindmap
Trang 4PHP
Giới thiệu về PHP
Biến, hằng
Kiểu dữ liệu, phép toán
Lệnh điều khiển
Hàm
PHP kết hợp với forms
Server Side
PHP-MySQL
Trang 5PHP-MySQL
Để kết nối PHP – MySQL
o MySQLi extension (<2012)
o PDO (PHP Data Objects)
Đặc điểm
o PDO
Hỗ trợ kết nối 12 hệ thống CSDL khác nhau
Hướng đối tượng
Prepared Statements
o MySQLi
Chỉ hỗ trợ MySQL
Hướng đối tượng và API
Prepared Statements
Trang 6PHP-MySQL
Kết nối (MySQLi Object-Oriented)
Trang 7PHP-MySQL
Die() – hàm hiển thị thông báo và dừng xử lý
// Check connection
if (mysqli_connect_error()) {
die("Database connection failed: "
mysqli_connect_error());
}
Trang 8PHP-MySQL
Kết nối (MySQLi Procedural)
Port mặc định: 3306
Trang 9PHP-MySQL
Kết nối (PDO)
Trang 10PHP-MySQL
Đóng kết nối
o MySQLi Object-Oriented
$conn->close();
o MySQLi Procedural
mysql_close($conn);
o PDO
$conn = null;
Trang 11PHP-MySQL
Truy cập CSDL
o mysql_select_db(database name", $con);
Thực thi câu lệnh SQL
o $result=mysql_query(“SQL_Statement”);
Tùy theo câu lệnh SQL mà ta có kết quả trả về tương ứng
o Select : trả về mảng các record
o Câu lệnh khác : true/false tùy theo thành công hay không
Chuyển kết quả dữ liệu truy vấn thành dạng mảng
Trang 12PHP-MySQL
Các bước thao tác
o Kết nối PHP/MySQL: mysql_connect()
o Chọn CSDL để làm việc: mysql_select_db()
o Xử lý câu truy vấn: mysql_query()
o Phân tích, xử lý kết quả truy vấn: mysql_fetch_array()
o Đóng kết nối PHP/MySQL: mysql_close()
Trang 13PHP-MySQL
Ví dụ:
Câu lệnh SQL: Select…
$sql = “Select … ”;
$result = mysql_query($sql);
if(!$result) { echo “Record not found!”; } else {
while($row = mysql_fetch_array($result)){ echo $row[„firstField'] " "
$row[„secondField'];
echo "<br />";
} } // else
mysql_close($con); // đóng kết nối
Trang 14PHP-MySQL
Câu lệnh SQL: INSERT, UPDATE…
$sql=“Insert into table_name(field_list)
values(value_list);
$result=mysql_query($sql);
if(!$result) {echo mysql_error(); // xử lý
tiếp;}
else { //xử lý …}
Việc sử dụng câu lệnh Upadte cũng tương tự
Lỗi xảy ra nếu vi phạm một trong các ràng buộc toàn vẹn dữ liệu
Sử dụng hàm die() hợp lý để điều khiển xử lý
Trang 15PHP-MySQL
Hàm mysql_fetch_array
Cú pháp: mysql_fetch_array (data [, array_type]);
MySQL_Assoc : mảng kết hợp, key của mảng là field_name
MySQL_Num : key của mảng là chỉ số
MySQL_Both : cả hai khả năng trên, đây là kiểu mặc định
Ví dụ:
while($row = mysql_fetch_array($result)){
echo $row[0] " " $row[1];
echo "<br />";
}
Trang 16Tiếng Việt trong PHP
Lưu tệp với mã UTF-8 (*)
Khai báo trong phần head
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Khai báo câu lệnh mysql_query(“SET NAMES ‘utf8’”) trước câu lệnh
$sql = “Select … ”;
$result = mysql_query($sql);
if(!$result) , echo “Record not found!”; -
else {
echo $row*‘ firstField '+ " " $row*‘ secondField '+.”<br>”;- }
Trang 17PHP-MySQL
Một số chú ý:
o Để xử lý truy vấn với các bản ghi Tiếng Việt, trước khi truy vấn phải sử dụng SET NAMES ‘utf-8’
mysql_query("SET NAMES 'utf8'");
o Cần viết chính xác Tên trường trong bảng CSDL khi duyệt