SlideShare a Scribd company logo
Bài 2
Các kỹ thuật lập trình MySQL
với PHP nâng cao
Phân biệt khi nào sử dụng PDO và mở rộng
mysqli
Cách sử dụng câu lệnh dựng sẵn khi làm việc với
PDO
Cách sử dụng chế độ hiển thị lỗi
Cách sử dụng mysqli trong cả hai hướng lập
trình hướng đối tượng và hướng cấu trúc
Mục tiêu
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 2
PDO
Mysqli
Hàm PHP làm việc với MySql có sẵn
Các cách sử dụng PHP
để làm việc với MySQL
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 3
Làm việc với truy vấn dựng sẵn
Ưu nhược điểm của PDO
Thiết lập chế độ hiển thị lỗi cho PDO
Làm việc với PDO
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 4
Ưu điểm:
Được tích hợp trong PHP phiên bản 5.1 trở lên và
dùng được cho phiên bản 5.0.
Cung cấp giao tiếp hướng đối tượng.
Cung cấp một giao tiếp nhất quán cho phép lưu
chuyển dữ liệu giữa các hệ cơ sở dữ liệu khác nhau
như Oracle, DB2, Microsoft SQL Server, PostgreSQL.
Tận dụng hầu hết ưu điểm các tính năng mới của
MySQL phiên bản 4.1.3 trở lên.
PDO (PHP Data Object)
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 5
Nhược điểm:
Không làm việc trên PHP phiên bản 4.x, 3.x hay các
phiên bản trước đó.
Không tận dụng ưu điểm của các tính năng tiên tiến
mới của MySQL phiên bản 4.1.3 trở lên, như tính
năng lồng câu lệnh SQL.
PDO (PHP Data Object)
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 6
Ưu điểm:
Được tích hợp trong PHP phiên bản 5 trở lên.
Hỗ trợ cả giao tiếp hướng đối tượng và giao tiếp kiểu
cấu trúc.
Tận dụng tất cả các tính năng mới của MySQL phiên
bản 4.1.3 trở lên.
Nhược điểm:
Không làm việc với các hệ cơ sở dữ liệu khác ngoài
MySQL.
mysqli (mở rộng MySQL cải tiến)
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 7
prepare($sql_statement)
lastInsertId()
Một số phương thức của lớp PDO
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 8
bindValue($param, $value)
execute()
fetchAll()
fetch()
rowCount()
closeCursor()
Một số phương thức
của lớp PDOStatement
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 9
Sử dụng phương thức fetchAll để trả về tập kết
quả:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 10
$query = 'SELECT * FROM products';
$statement = $db->prepare($query);
$statement->execute();
$products = $statement->fetchAll();
$statement->closeCursor();
foreach ($products as $product) {
echo $product['productName'] . '<br />';
}
Sử dụng phương thức fetch để duyệt qua một
tập kết quả:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 11
$query = 'SELECT * FROM products';
$statement = $db->prepare($query);
$statement->execute();
$product = $statement->fetch(); // lấy bản ghi đầu tiên
while ($product ! = null) {
echo $product['productName'] . '<br />';
$product = $statement->fetch(); // lấy bản ghi
tiếp theo
}
$statement->closeCursor();
Sử dụng tham số danh định
(named parameter)
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 12
$category_id = 1;
$price = 400;
$query = 'SELECT * FROM products
WHERE categoryID = :categoryid
AND listPrice > :price';
$statement = $db->prepare($query);
$statement->bindValue(':categoryid', $category_id);
$statement->bindValue(':price', $price);
$statement->execute();
$products = $statement->fetchAll();
$statement->closeCursor();
Sử dụng tham số dấu hỏi
(question mark parameter)
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 13
$query = 'SELECT * FROM products
WHERE categoryID = ?
AND listPrice > ?';
$statement = $db->prepare($query);
$statement->bindValue(1, $category_id);
$statement->bindValue(2, $price);
$statement->execute();
$products = $statement->fetchAll();
$statement->closeCursor();
Thay đổi dữ liệu
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 14
// Dữ liệu mẫu
$category_id = 2;
$code = 'hofner';
$name = 'Hofner Icon';
$price = '499.99';
// Thiết lập và thực thi câu lệnh
$query = 'INSERT INTO products
(categoryID, productCode, productName, listPrice)
VALUES
(:category_id, :code, :name, :price)';
$statement = $db->prspare($query);
$statement->bindValue(':categoryid', $category_id);
$statement->bindValue(':code', $code);
$statement->bindValue(':name', $name);
$statement->bindValue(':price', $price);
$success = $statement->execute();
Thay đổi dữ liệu
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 15
$row_count = $statement->rowCount();
$statement->closeCursor();
// Lấy ID sản phẩm cuối cùng
$product_id = $db->lastlnsertId();
// Hiển thị thông báo cho người sử dụng
if ($success) {
echo "<p>$row_count row(s) was inserted with this ID:
$product_id</p>"; } else {
echo "<p>No rows were inserted.</p>";
}
ERRMODE_SILENT
ERRMODE_WARNING
ERRMODE_EXCEPTION
Ba chế độ xử lý lỗi của PDO
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 16
Sử dụng hàm khởi tạo của lớp PDO để thiết lập
chế độ xử lý lỗi:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 17
$dsn = 'mysql:host=localhost;dbname=my_guitar_shopl';
$username = 'mgs_user';
$password = 'pa55word';
$options = array(PDO::ATTR_ERRMODE =>
PDO::ERRMODEEXCEPTION);
try {
$db = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
$error_message = $e->getMessage();
echo "<p>Error connecting to database: $error_message
</p>";
exit();
}
Sử dụng phương thức setAttribute để thiết lập
chế độ xử lý lỗi:
Sử dụng cặp lệnh try/catch để bắt các đối tượng
PDOException:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 18
$db->setAttribute(PDO::ATTRERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$query = 'SELECT * FROM product';
$statement = $db->prepare($query);
$statement->execute();
$products = $statement->fetchAll();
$statement->closeCursor();
} catch (PDOException $e) {
$error_message = $e->getMessage();
echo "<p>Database error: $error_message </p>";
exit();
Kết nối với CSDL
Truy vấn và cập nhật dữ liệu
Làm việc với truy vấn dựng sẵn
So sánh giao diện hướng đối tượng và hướng
cấu trúc
Làm việc với mysqli
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 19
Kết nối đến cơ sở dữ liệu MySQL (kiểu hướng
đối tượng):
Hướng dẫn kết nối đến cơ sở dữ liệu MySQL
(kiểu cấu trúc):
mysqli
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 20
$host = 'localhost';
$username = 1mgsuser';
$password = 'pa55word';
$db_name = 'myguitarahopl';
@ $db = new mysqli($host, $username, $password,
$db_name);
$host = 'localhost';
$username = 'mgsuser';
$password = 'pa55word';
$db_name = 'my_guitar_shopl';
@ $db = mysqliconnect($host, $username, $password,
$db_name);
Connect_errno
Connect_error
Hai thuộc tính của đối tượng mysqli
dùng để kiểm tra lỗi kết nối
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 21
Kiểm tra lỗi kết nối (kiểu hướng đối tượng):
Hướng dẫn kiểm tra lỗi kết nối (kiểu cấu trúc):
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 22
$connection_error = $db->connect_error;
if ($connection_error 1= null) {
echo "<p>Error connecting to database:
$connection_error</p>"; exit();
}
$connection_error = mysqli_connect_error();
if ($connection_error != null) {
echo "<p>Error connecting to database:
$connection_error</p>"; exit();
}
Phương thức của lớp mysqli trả về tập kết quả:
Thuộc tính và phương thức của lớp
mysqli_resultset:
Lớp mysqli
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 23
Phương thức Giải thích
query($select_statement) Thực thi câu lệnh SQL trong ngoặc và trả về đối
tượng mysqli cho tập kết quả. Nếu không có kết
quả nào được tìm thấy, hàm sẽ trả về giá trị
FALSE
Thuộc tính/Phương thức Giải thích
num_rows Số bản ghi của tập kết quả.
Fetch_assoc() Trả về tập kết quả là một mảng liên kết
Hướng dẫn thực thi câu lệnh SELECT:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 24
// Thực thi câu lệnh
$category_id = 2;
$query = "SELECT * FROM products
WHERE categoryID = $category_id";
$result = $db->query($query);
// Kiểm tra tập kết quả trả về
if ($result == false) {
$error_message = $db->error;
echo "<p>An error occurred: $error_message</p>"; exit{);
}
// Lấy ra số dòng có trong tập kết quả
$row_count = $result->num_rows;
Hướng dẫn hiển thị kết quả:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 25
<?php for ($i = 0; $i < $row_count; $i++) :
$product = $result->fetch_assoc();
?>
<tr>
<tdx?php echo $product ['productID1 ] ; ?></td>
<tdx?php echo $product ['categoryID1 ] ; ?></td>
<tdx?php echo $product ['productCode'] ; ?></td>
<tdx?php echo $product ['productName'] ; ?x/td>
<tdx?php echo $product ['listPrice'] ; ?x/td>
</tr>
<?php endfor; ?>
Giải phóng tài nguyên được dùng bởi tập kết
quả và kết nối cơ sở dữ liệu:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 26
$result->free(); // Giải phóng tập kết quả
$db->close(); // Giải phóng kết nối tới cơ sở dữ liệu
Thuộc tính Giải thích
affectedrows Trả về số hàng bị ảnh hưởng. Nếu không có hàng bị ảnh hưởng,
thuộc tính này trả về số không
insert_id Trả về ID được tự động tạo ra trong truy vấn trước đó. Nếu
không có ID được tạo ra, thuộc tính này trả về số không
error Trả về thông báo lỗi nếu có lỗi xảy ra. Nếu không, nó sẽ trả về
một chuỗi rỗng
errno Trả về số nguyên ký hiệu mã lỗi nếu có lỗi. Nếu không có lỗi, trả
về 0
Các thuộc tính của lớp mysqli
dùng để kiểm tra kết quả
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 27
Thực thi lệnh INSERT:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 28
// Dữ liệu mẫu
$category_id = 2;
$code = 'hofner';
$name = 'Hofner Icon';
$price = 499.99;
// Thực thi câu lệnh SQL
$query = "INSERT INTO products
(categoryID, productCode, productName, listPrice) VALUES
($category_id, '$code', '$name', $price)"; $success = $db-
>query($query);
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 29
// Kiểm tra kết quả
if ($success) {
$count = $db->affected_rows;
echo "<p>$count product(s) were added.</p>";
} else {
$error_message = $db->error;
echo "<p>An error occurred: $error_message</p>";
}
// Kiểm tra ID của sản phẩm vừa được tự động tạo ra
$product_id = $db->insert_id;
echo "<p>Generated product ID: $product_id</p>";
Phương thức của lớp mysqli:
prepare($sql_statement)
Phương thức của lớp mysqli_stmt:
bind_param($fs, $vl [, $v2]...)
bind result($vl [, $v2]...)
execute()
fetch()
close ()
Làm việc với câu lệnh SQL dựng sẵn
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 30
Thực thi một câu lệnh dựng sẵn trả về một tập
kết quả:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 31
$category_id = 2;
$query = "SELECT productCode, productName, listPrice
FROM products WHERE categoryID = ?";
$statement = $db->prspare($query);
$statement->bind_param("i", $category_id);
$statement->bind_result($code, $name, $listPrice);
$statement->execute();
Hiển thị tập kết quả:
Đóng câu lệnh:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 32
<?php while($statement->fetch()) : ?>
<tr>
<tdx?php echo $code; ?></td>
<tdx?php echo $name; ?x/td>
<tdx?php echo $listPrice; ?></td>
</tr>
<?php endwhile; ?>
$statement->close()
Thực thi câu lệnh SQL dựng sẵn để thay đổi dữ
liệu:
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 33
$category_id = 2;
$code = 'hofner';
$name = 'Hofner Icon';
$price = 499.99;
$query = "INSERT INTO products
(categoryID, productCode, productName, listPrice)
VALUES
(?, ?, ?, ?)";
$statement = $db->prspars($query);
$statement->bind_param("issd", $category_id, $code, $name,
$price);
$success = $statement->execute();
Ví dụ
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 34
if ($success) {
$count = $db->affected_rows;
echo "<p>$count product(s) were added.</p>";
} else {
$error_message = $db->error;
echo "<p>An error occurred: $error_message</p>";
}
$statement->close();
Câu lệnh kiểu hướng đối tượng
và hướng cấu trúc
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 35
$result = $db->query($query);
$result = mysqli_query($db, $query);
$error_message = $db->srror;
$error_message = mysqlierror($db);
$row = $result->fetch_assoc();
$row = mysqli_fetch_assoc($result);
$row_count = $result->num_rows;
$row_count = mysqlinumrows($result);
$count = $db->affected_rows;
$count = mysqliaffectsdrows($db);
Câu lệnh kiểu hướng đối tượng
và hướng cấu trúc
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 36
$result->frees();
mysqli_free_result($result);
$statement = $db->prepare($query);
$statement = mysqli_prepare($db, $query);
$statement->bind param ("i", $category_id);
mysqli_bind_param($statement, "i", $category_id);
$success = $statement->execute();
$success = mysqlisxscute($statement);
$db->close();
mysqliclose($db);
MySQL cung cấp giao diện lập trình ứng dụng
(API) cho biết loại ứng dụng nào có thể làm việc
với MySQL
PHP cung cấp ba mở rộng để làm việc với thư
viện API của MySQL: mysql, mysqli, PDO
Khi sử dụng PDO để thực thi các câu lệnh SQL,
bạn có thể lựa chọn ba chế độ bắt và xử lý lỗi.
So với câu lệnh SQL động, câu lệnh SQL dựng
sẵn giúp tăng hiệu năng và độ bảo mật
Tổng kết bài học
Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 37

More Related Content

What's hot

Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
MasterCode.vn
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
MasterCode.vn
 
Web201 slide 3
Web201   slide 3Web201   slide 3
Web201 slide 3
tuanduongcntt
 
Web3012 slide 8
Web3012   slide 8Web3012   slide 8
Web3012 slide 8
tuanduongcntt
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
MasterCode.vn
 
Web201 slide 4
Web201   slide 4Web201   slide 4
Web201 slide 4
tuanduongcntt
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
MasterCode.vn
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
tuanduongcntt
 
Web301 slide 4
Web301   slide 4Web301   slide 4
Web301 slide 4
tuanduongcntt
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
tuanduongcntt
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng cao
ZendVN
 
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTBài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
MasterCode.vn
 
Web201 slide 5
Web201   slide 5Web201   slide 5
Web201 slide 5
tuanduongcntt
 
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webBài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
MasterCode.vn
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
KhanhPham
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
tuanduongcntt
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
ZendVN
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Huy Vũ
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsdVu Hung Nguyen
 
Web3012 assignment
Web3012   assignmentWeb3012   assignment
Web3012 assignment
tuanduongcntt
 

What's hot (20)

Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
Web201 slide 3
Web201   slide 3Web201   slide 3
Web201 slide 3
 
Web3012 slide 8
Web3012   slide 8Web3012   slide 8
Web3012 slide 8
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
 
Web201 slide 4
Web201   slide 4Web201   slide 4
Web201 slide 4
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Web301 slide 4
Web301   slide 4Web301   slide 4
Web301 slide 4
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng cao
 
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPTBài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
Bài 5 Lập trình PHP (phần 3) Làm việc với dữ liệu của form - Giáo trình FPT
 
Web201 slide 5
Web201   slide 5Web201   slide 5
Web201 slide 5
 
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webBài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsd
 
Web3012 assignment
Web3012   assignmentWeb3012   assignment
Web3012 assignment
 

Viewers also liked

Lập trình PHP và MySQL
Lập trình PHP và MySQLLập trình PHP và MySQL
Lập trình PHP và MySQL
Trung Thanh Nguyen
 
Session 5 : mvc - Giáo trình Bách Khoa Aptech
Session 5 : mvc  - Giáo trình Bách Khoa AptechSession 5 : mvc  - Giáo trình Bách Khoa Aptech
Session 5 : mvc - Giáo trình Bách Khoa Aptech
MasterCode.vn
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
Huy Vũ
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
MasterCode.vn
 
Tin hoc dai cuong
Tin hoc dai cuongTin hoc dai cuong
Tin hoc dai cuong
Trần Bảo
 
Hướng dẫn lập trình web với PHP - Ngày 5
Hướng dẫn lập trình web với PHP - Ngày 5Hướng dẫn lập trình web với PHP - Ngày 5
Hướng dẫn lập trình web với PHP - Ngày 5
Nguyễn Tuấn Quỳnh
 
Lap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in JavaLap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in Java
vdlinh08
 
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online  MớiSlide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online  Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Hiệu Nguyễn
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1
vdlinh08
 
Lập trình hướng đối tượng - p2
Lập trình hướng đối tượng - p2Lập trình hướng đối tượng - p2
Lập trình hướng đối tượng - p2
Học viện đào tạo CNTT NIIT iNET
 
Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7
vdlinh08
 
6 he thong xuat nhap
6 he thong xuat nhap6 he thong xuat nhap
6 he thong xuat nhap
Ly hai
 
BGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chungBGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chungCao Toa
 
Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7
vdlinh08
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
Tùng Tò Mò
 

Viewers also liked (16)

Lập trình PHP và MySQL
Lập trình PHP và MySQLLập trình PHP và MySQL
Lập trình PHP và MySQL
 
Session 5 : mvc - Giáo trình Bách Khoa Aptech
Session 5 : mvc  - Giáo trình Bách Khoa AptechSession 5 : mvc  - Giáo trình Bách Khoa Aptech
Session 5 : mvc - Giáo trình Bách Khoa Aptech
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Tin hoc dai cuong
Tin hoc dai cuongTin hoc dai cuong
Tin hoc dai cuong
 
Hướng dẫn lập trình web với PHP - Ngày 5
Hướng dẫn lập trình web với PHP - Ngày 5Hướng dẫn lập trình web với PHP - Ngày 5
Hướng dẫn lập trình web với PHP - Ngày 5
 
Lap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in JavaLap trinh HDT Java, Object-Oriented Programming in Java
Lap trinh HDT Java, Object-Oriented Programming in Java
 
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online  MớiSlide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online  Mới
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1
 
Lập trình hướng đối tượng - p2
Lập trình hướng đối tượng - p2Lập trình hướng đối tượng - p2
Lập trình hướng đối tượng - p2
 
Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7Giao trinh Lap trinh can ban B – Delphi 7
Giao trinh Lap trinh can ban B – Delphi 7
 
6 he thong xuat nhap
6 he thong xuat nhap6 he thong xuat nhap
6 he thong xuat nhap
 
BGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chungBGKTMT Ch1 giới thiệu chung
BGKTMT Ch1 giới thiệu chung
 
Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7Giao trinh thuc hanh - Delphi 7
Giao trinh thuc hanh - Delphi 7
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
 
Mvc Model
Mvc ModelMvc Model
Mvc Model
 

Similar to Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web

E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
elearninglabvn
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
Nguyễn Tuấn Quỳnh
 
C5. Model, DataSharing.pdf
C5. Model, DataSharing.pdfC5. Model, DataSharing.pdf
C5. Model, DataSharing.pdf
HongVnHngCNTT1303
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8 Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
KhanhPham
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1
Ông Thông
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
ANHMATTROI
 
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
KhanhPham
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng Extension
MasterCode.vn
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvc
Che Linh Nguyen
 
Lập trình hướng đối tượng trong PHP
 Lập trình hướng đối tượng trong PHP Lập trình hướng đối tượng trong PHP
Lập trình hướng đối tượng trong PHP
NETKO Solution
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
MasterCode.vn
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
Brand Xanh
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developerDang Tuan
 

Similar to Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web (20)

E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
C5. Model, DataSharing.pdf
C5. Model, DataSharing.pdfC5. Model, DataSharing.pdf
C5. Model, DataSharing.pdf
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8 Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
 
08 web course php ket noi csdl
08 web course   php ket noi csdl08 web course   php ket noi csdl
08 web course php ket noi csdl
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1
 
Yii
YiiYii
Yii
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
Bài 6: Working with DATA
Bài 6: Working with DATABài 6: Working with DATA
Bài 6: Working with DATA
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng Extension
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvc
 
Bai th08 php voi csdl
Bai th08 php voi csdlBai th08 php voi csdl
Bai th08 php voi csdl
 
Lập trình hướng đối tượng trong PHP
 Lập trình hướng đối tượng trong PHP Lập trình hướng đối tượng trong PHP
Lập trình hướng đối tượng trong PHP
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
 
Ch06
Ch06Ch06
Ch06
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
 

More from MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
MasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
MasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
MasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
MasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
MasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
MasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
MasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
MasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
MasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
MasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
MasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
MasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
MasterCode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
MasterCode.vn
 

More from MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 

Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web

  • 1. Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao
  • 2. Phân biệt khi nào sử dụng PDO và mở rộng mysqli Cách sử dụng câu lệnh dựng sẵn khi làm việc với PDO Cách sử dụng chế độ hiển thị lỗi Cách sử dụng mysqli trong cả hai hướng lập trình hướng đối tượng và hướng cấu trúc Mục tiêu Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 2
  • 3. PDO Mysqli Hàm PHP làm việc với MySql có sẵn Các cách sử dụng PHP để làm việc với MySQL Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 3
  • 4. Làm việc với truy vấn dựng sẵn Ưu nhược điểm của PDO Thiết lập chế độ hiển thị lỗi cho PDO Làm việc với PDO Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 4
  • 5. Ưu điểm: Được tích hợp trong PHP phiên bản 5.1 trở lên và dùng được cho phiên bản 5.0. Cung cấp giao tiếp hướng đối tượng. Cung cấp một giao tiếp nhất quán cho phép lưu chuyển dữ liệu giữa các hệ cơ sở dữ liệu khác nhau như Oracle, DB2, Microsoft SQL Server, PostgreSQL. Tận dụng hầu hết ưu điểm các tính năng mới của MySQL phiên bản 4.1.3 trở lên. PDO (PHP Data Object) Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 5
  • 6. Nhược điểm: Không làm việc trên PHP phiên bản 4.x, 3.x hay các phiên bản trước đó. Không tận dụng ưu điểm của các tính năng tiên tiến mới của MySQL phiên bản 4.1.3 trở lên, như tính năng lồng câu lệnh SQL. PDO (PHP Data Object) Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 6
  • 7. Ưu điểm: Được tích hợp trong PHP phiên bản 5 trở lên. Hỗ trợ cả giao tiếp hướng đối tượng và giao tiếp kiểu cấu trúc. Tận dụng tất cả các tính năng mới của MySQL phiên bản 4.1.3 trở lên. Nhược điểm: Không làm việc với các hệ cơ sở dữ liệu khác ngoài MySQL. mysqli (mở rộng MySQL cải tiến) Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 7
  • 8. prepare($sql_statement) lastInsertId() Một số phương thức của lớp PDO Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 8
  • 9. bindValue($param, $value) execute() fetchAll() fetch() rowCount() closeCursor() Một số phương thức của lớp PDOStatement Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 9
  • 10. Sử dụng phương thức fetchAll để trả về tập kết quả: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 10 $query = 'SELECT * FROM products'; $statement = $db->prepare($query); $statement->execute(); $products = $statement->fetchAll(); $statement->closeCursor(); foreach ($products as $product) { echo $product['productName'] . '<br />'; }
  • 11. Sử dụng phương thức fetch để duyệt qua một tập kết quả: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 11 $query = 'SELECT * FROM products'; $statement = $db->prepare($query); $statement->execute(); $product = $statement->fetch(); // lấy bản ghi đầu tiên while ($product ! = null) { echo $product['productName'] . '<br />'; $product = $statement->fetch(); // lấy bản ghi tiếp theo } $statement->closeCursor();
  • 12. Sử dụng tham số danh định (named parameter) Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 12 $category_id = 1; $price = 400; $query = 'SELECT * FROM products WHERE categoryID = :categoryid AND listPrice > :price'; $statement = $db->prepare($query); $statement->bindValue(':categoryid', $category_id); $statement->bindValue(':price', $price); $statement->execute(); $products = $statement->fetchAll(); $statement->closeCursor();
  • 13. Sử dụng tham số dấu hỏi (question mark parameter) Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 13 $query = 'SELECT * FROM products WHERE categoryID = ? AND listPrice > ?'; $statement = $db->prepare($query); $statement->bindValue(1, $category_id); $statement->bindValue(2, $price); $statement->execute(); $products = $statement->fetchAll(); $statement->closeCursor();
  • 14. Thay đổi dữ liệu Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 14 // Dữ liệu mẫu $category_id = 2; $code = 'hofner'; $name = 'Hofner Icon'; $price = '499.99'; // Thiết lập và thực thi câu lệnh $query = 'INSERT INTO products (categoryID, productCode, productName, listPrice) VALUES (:category_id, :code, :name, :price)'; $statement = $db->prspare($query); $statement->bindValue(':categoryid', $category_id); $statement->bindValue(':code', $code); $statement->bindValue(':name', $name); $statement->bindValue(':price', $price); $success = $statement->execute();
  • 15. Thay đổi dữ liệu Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 15 $row_count = $statement->rowCount(); $statement->closeCursor(); // Lấy ID sản phẩm cuối cùng $product_id = $db->lastlnsertId(); // Hiển thị thông báo cho người sử dụng if ($success) { echo "<p>$row_count row(s) was inserted with this ID: $product_id</p>"; } else { echo "<p>No rows were inserted.</p>"; }
  • 16. ERRMODE_SILENT ERRMODE_WARNING ERRMODE_EXCEPTION Ba chế độ xử lý lỗi của PDO Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 16
  • 17. Sử dụng hàm khởi tạo của lớp PDO để thiết lập chế độ xử lý lỗi: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 17 $dsn = 'mysql:host=localhost;dbname=my_guitar_shopl'; $username = 'mgs_user'; $password = 'pa55word'; $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODEEXCEPTION); try { $db = new PDO($dsn, $username, $password, $options); } catch (PDOException $e) { $error_message = $e->getMessage(); echo "<p>Error connecting to database: $error_message </p>"; exit(); }
  • 18. Sử dụng phương thức setAttribute để thiết lập chế độ xử lý lỗi: Sử dụng cặp lệnh try/catch để bắt các đối tượng PDOException: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 18 $db->setAttribute(PDO::ATTRERRMODE, PDO::ERRMODE_EXCEPTION); try { $query = 'SELECT * FROM product'; $statement = $db->prepare($query); $statement->execute(); $products = $statement->fetchAll(); $statement->closeCursor(); } catch (PDOException $e) { $error_message = $e->getMessage(); echo "<p>Database error: $error_message </p>"; exit();
  • 19. Kết nối với CSDL Truy vấn và cập nhật dữ liệu Làm việc với truy vấn dựng sẵn So sánh giao diện hướng đối tượng và hướng cấu trúc Làm việc với mysqli Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 19
  • 20. Kết nối đến cơ sở dữ liệu MySQL (kiểu hướng đối tượng): Hướng dẫn kết nối đến cơ sở dữ liệu MySQL (kiểu cấu trúc): mysqli Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 20 $host = 'localhost'; $username = 1mgsuser'; $password = 'pa55word'; $db_name = 'myguitarahopl'; @ $db = new mysqli($host, $username, $password, $db_name); $host = 'localhost'; $username = 'mgsuser'; $password = 'pa55word'; $db_name = 'my_guitar_shopl'; @ $db = mysqliconnect($host, $username, $password, $db_name);
  • 21. Connect_errno Connect_error Hai thuộc tính của đối tượng mysqli dùng để kiểm tra lỗi kết nối Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 21
  • 22. Kiểm tra lỗi kết nối (kiểu hướng đối tượng): Hướng dẫn kiểm tra lỗi kết nối (kiểu cấu trúc): Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 22 $connection_error = $db->connect_error; if ($connection_error 1= null) { echo "<p>Error connecting to database: $connection_error</p>"; exit(); } $connection_error = mysqli_connect_error(); if ($connection_error != null) { echo "<p>Error connecting to database: $connection_error</p>"; exit(); }
  • 23. Phương thức của lớp mysqli trả về tập kết quả: Thuộc tính và phương thức của lớp mysqli_resultset: Lớp mysqli Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 23 Phương thức Giải thích query($select_statement) Thực thi câu lệnh SQL trong ngoặc và trả về đối tượng mysqli cho tập kết quả. Nếu không có kết quả nào được tìm thấy, hàm sẽ trả về giá trị FALSE Thuộc tính/Phương thức Giải thích num_rows Số bản ghi của tập kết quả. Fetch_assoc() Trả về tập kết quả là một mảng liên kết
  • 24. Hướng dẫn thực thi câu lệnh SELECT: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 24 // Thực thi câu lệnh $category_id = 2; $query = "SELECT * FROM products WHERE categoryID = $category_id"; $result = $db->query($query); // Kiểm tra tập kết quả trả về if ($result == false) { $error_message = $db->error; echo "<p>An error occurred: $error_message</p>"; exit{); } // Lấy ra số dòng có trong tập kết quả $row_count = $result->num_rows;
  • 25. Hướng dẫn hiển thị kết quả: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 25 <?php for ($i = 0; $i < $row_count; $i++) : $product = $result->fetch_assoc(); ?> <tr> <tdx?php echo $product ['productID1 ] ; ?></td> <tdx?php echo $product ['categoryID1 ] ; ?></td> <tdx?php echo $product ['productCode'] ; ?></td> <tdx?php echo $product ['productName'] ; ?x/td> <tdx?php echo $product ['listPrice'] ; ?x/td> </tr> <?php endfor; ?>
  • 26. Giải phóng tài nguyên được dùng bởi tập kết quả và kết nối cơ sở dữ liệu: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 26 $result->free(); // Giải phóng tập kết quả $db->close(); // Giải phóng kết nối tới cơ sở dữ liệu
  • 27. Thuộc tính Giải thích affectedrows Trả về số hàng bị ảnh hưởng. Nếu không có hàng bị ảnh hưởng, thuộc tính này trả về số không insert_id Trả về ID được tự động tạo ra trong truy vấn trước đó. Nếu không có ID được tạo ra, thuộc tính này trả về số không error Trả về thông báo lỗi nếu có lỗi xảy ra. Nếu không, nó sẽ trả về một chuỗi rỗng errno Trả về số nguyên ký hiệu mã lỗi nếu có lỗi. Nếu không có lỗi, trả về 0 Các thuộc tính của lớp mysqli dùng để kiểm tra kết quả Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 27
  • 28. Thực thi lệnh INSERT: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 28 // Dữ liệu mẫu $category_id = 2; $code = 'hofner'; $name = 'Hofner Icon'; $price = 499.99; // Thực thi câu lệnh SQL $query = "INSERT INTO products (categoryID, productCode, productName, listPrice) VALUES ($category_id, '$code', '$name', $price)"; $success = $db- >query($query);
  • 29. Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 29 // Kiểm tra kết quả if ($success) { $count = $db->affected_rows; echo "<p>$count product(s) were added.</p>"; } else { $error_message = $db->error; echo "<p>An error occurred: $error_message</p>"; } // Kiểm tra ID của sản phẩm vừa được tự động tạo ra $product_id = $db->insert_id; echo "<p>Generated product ID: $product_id</p>";
  • 30. Phương thức của lớp mysqli: prepare($sql_statement) Phương thức của lớp mysqli_stmt: bind_param($fs, $vl [, $v2]...) bind result($vl [, $v2]...) execute() fetch() close () Làm việc với câu lệnh SQL dựng sẵn Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 30
  • 31. Thực thi một câu lệnh dựng sẵn trả về một tập kết quả: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 31 $category_id = 2; $query = "SELECT productCode, productName, listPrice FROM products WHERE categoryID = ?"; $statement = $db->prspare($query); $statement->bind_param("i", $category_id); $statement->bind_result($code, $name, $listPrice); $statement->execute();
  • 32. Hiển thị tập kết quả: Đóng câu lệnh: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 32 <?php while($statement->fetch()) : ?> <tr> <tdx?php echo $code; ?></td> <tdx?php echo $name; ?x/td> <tdx?php echo $listPrice; ?></td> </tr> <?php endwhile; ?> $statement->close()
  • 33. Thực thi câu lệnh SQL dựng sẵn để thay đổi dữ liệu: Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 33 $category_id = 2; $code = 'hofner'; $name = 'Hofner Icon'; $price = 499.99; $query = "INSERT INTO products (categoryID, productCode, productName, listPrice) VALUES (?, ?, ?, ?)"; $statement = $db->prspars($query); $statement->bind_param("issd", $category_id, $code, $name, $price); $success = $statement->execute();
  • 34. Ví dụ Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 34 if ($success) { $count = $db->affected_rows; echo "<p>$count product(s) were added.</p>"; } else { $error_message = $db->error; echo "<p>An error occurred: $error_message</p>"; } $statement->close();
  • 35. Câu lệnh kiểu hướng đối tượng và hướng cấu trúc Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 35 $result = $db->query($query); $result = mysqli_query($db, $query); $error_message = $db->srror; $error_message = mysqlierror($db); $row = $result->fetch_assoc(); $row = mysqli_fetch_assoc($result); $row_count = $result->num_rows; $row_count = mysqlinumrows($result); $count = $db->affected_rows; $count = mysqliaffectsdrows($db);
  • 36. Câu lệnh kiểu hướng đối tượng và hướng cấu trúc Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 36 $result->frees(); mysqli_free_result($result); $statement = $db->prepare($query); $statement = mysqli_prepare($db, $query); $statement->bind param ("i", $category_id); mysqli_bind_param($statement, "i", $category_id); $success = $statement->execute(); $success = mysqlisxscute($statement); $db->close(); mysqliclose($db);
  • 37. MySQL cung cấp giao diện lập trình ứng dụng (API) cho biết loại ứng dụng nào có thể làm việc với MySQL PHP cung cấp ba mở rộng để làm việc với thư viện API của MySQL: mysql, mysqli, PDO Khi sử dụng PDO để thực thi các câu lệnh SQL, bạn có thể lựa chọn ba chế độ bắt và xử lý lỗi. So với câu lệnh SQL động, câu lệnh SQL dựng sẵn giúp tăng hiệu năng và độ bảo mật Tổng kết bài học Bài 2 - Các kỹ thuật lập trình MySQL với PHP nâng cao 37