Bạn nên sử dụng nó như vậy
<?php
$dbhost = 'localhost';
$dbname = 'pdo';
$dbusername = 'root';
$dbpassword = '845625';
$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
VALUES (:fname, :sname, :age)');
$statement->execute([
'fname' => 'Bob',
'sname' => 'Desaunois',
'age' => '18',
]);
Các câu lệnh soạn sẵn được sử dụng để làm sạch thông tin nhập của bạn và để làm điều đó, bạn có thể sử dụng :foo
không có bất kỳ dấu ngoặc kép nào trong SQL để ràng buộc và sau đó trong execute()
hàm bạn truyền vào một mảng kết hợp của các biến mà bạn đã xác định trong câu lệnh SQL.
Bạn cũng có thể sử dụng ?
thay vì :foo
và sau đó chuyển vào một mảng chỉ các giá trị để nhập như vậy;
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
VALUES (?, ?, ?)');
$statement->execute(['Bob', 'Desaunois', '18']);
Cả hai cách đều có những ưu điểm và nhược điểm riêng. Cá nhân tôi thích liên kết các tên tham số vì nó dễ đọc hơn cho tôi.