Ràng buộc biến theo vị trí trong PDO PHP
Có thể ràng buộc từng biến một vào truy vấn.
Điều này được thực hiện bằng phương thức bindValue.
Sau đó, truy vấn nhận được được thực thi, nhưng
trong trường hợp này không truyền gì vào execute.
Việc ràng buộc như vậy cho phép chỉ định chính xác kiểu biến, loại bỏ việc tự động bọc trong dấu ngoặc kép đối với các giá trị số. Hãy xem cách thực hiện điều này. Giả sử chúng ta có hai biến, một kiểu chuỗi và một kiểu số:
<?php
$name = 'name1';
$age = 25;
?>
Chuẩn bị truy vấn:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Bây giờ ràng buộc các biến vào truy vấn với
sự trợ giúp của phương thức bindValue.
Tham số đầu tiên của phương thức chỉ định
vị trí trong truy vấn, tham số thứ hai
là tên biến,
và tham số thứ ba chỉ định kiểu biến (số
hoặc chuỗi):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Thực thi truy vấn:
<?php
$res->execute();
?>
Hãy xem kết quả:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Cho các biến:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Lấy những người dùng có tên trùng khớp với giá trị của biến thứ nhất hoặc biến thứ hai.
Cho các biến:
<?php
$age1 = 21;
$age2 = 22;
?>
Lấy những người dùng có tuổi trùng khớp với giá trị của biến thứ nhất hoặc biến thứ hai.