Update dữ liệu trong PHP bằng PDO
Hướng dẫn Update dữ liệu trong PHP bằng PDO chi tiết thông qua các ví dụ cụ thể: Positional Placeholders, Named Placeholders, sử dụng phương thức bindParam()
Để cập nhật dữ liệu thông qua PDO trong PHP các bạn cần có một cơ sở dữ liệu, trong hướng dẫn này, mình sẽ hướng dẫn các bạn thông qua cập nhật thông tin một bài viết, để tạo cơ sở dữ liệu bạn xem bài viết Tích hợp TinyMCE trong PHP & MySQL bằng Ajax chúng ta sẽ sử dụng bảng dữ liệu ở bài viết đó. Sau đây chúng ta sẽ đi vào từng ví dụ cụ thể:
Cập nhật PDO với phần giữ chỗ vị trí (Positional Placeholders)
Trình giữ chỗ vị trí ẩn danh ngắn gọn và dễ sử dụng hơn
Ví dụ
<?php
$host = 'localhost';
$db = 'demophp';
$user = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";
try {
$conn = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
echo $e->getMessage();
}
$data = [
'test title 2 - update', 'content 2 - update', 2
];
$sql = "UPDATE posts SET title=?, content=? WHERE id=?";
$statement = $conn->prepare($sql);
if($statement->execute($data)) {
echo "Post updated successfully!";
}
?>
Cập nhật PDO với phần giữ chỗ được đặt tên (Named Placeholders)
Nếu bạn muốn một mảng được xác định trước rõ ràng hơn với các giá trị, ví dụ này là dành cho bạn. Xem mã bên dưới:
Ví dụ
<?php
$host = 'localhost';
$db = 'demophp';
$user = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";
try {
$conn = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
echo $e->getMessage();
}
$data = [
'title'=>'test title 2.1 - update',
'content' => 'content 2.1 - update',
'id' => 2
];
$sql = "UPDATE posts SET title=:title, content=:content WHERE id=:id";
$statement = $conn->prepare($sql);
if($statement->execute($data)) {
echo "Post updated successfully!";
}
?>
Cập nhật PDO với phần giữ chỗ được đặt tên sử dụng phương thức bindParam()
Phướng thức bindParam() được sử dụng để liên kết một tham số với biến được chỉ định trong câu lệnh SQL
Ví dụ
<?php
$host = 'localhost';
$db = 'demophp';
$user = 'root';
$password = '';
$dsn = "mysql:host=$host;dbname=$db;charset=UTF8";
try {
$conn = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
echo $e->getMessage();
}
$data = [
'title'=>'test title 2.2 - update',
'content' => 'content 2.2 - update',
'id' => 2
];
$sql = "UPDATE posts SET title=:title, content=:content WHERE id=:id";
$statement = $conn->prepare($sql);
$statement->bindParam(':id', $data['id'], PDO::PARAM_INT);
$statement->bindParam(':title', $data['title']);
$statement->bindParam(':content', $data['content']);
if($statement->execute()) {
echo "Post updated successfully!";
}