Trình giữ chỗ được đặt tên trong PDO trong PHP
Để tiện lợi, bạn có thể sử dụng các trình giữ chỗ được đặt tên, trong đó thứ tự của các biến trong mảng không quan trọng. Hãy xem cách làm việc với chúng.
Giả sử chúng ta lại có các biến sau:
<?php
$min = 1;
$max = 5;
?>
Hãy tạo một truy vấn SQL, sử dụng các trình giữ chỗ được đặt tên. Cú pháp của chúng như sau: dấu hai chấm, sau đó là tên của trình giữ chỗ. Hãy sử dụng chúng trong truy vấn:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Chuẩn bị truy vấn:
<?php
$res = $pdo->prepare($sql);
?>
Thực thi truy vấn, truyền cho nó các tham số là một mảng kết hợp, trong đó các khóa sẽ là tên của các trình giữ chỗ trong truy vấn SQL, còn các giá trị sẽ là các biến tương ứng:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Chúng ta có thể xem kết quả:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Tổng hợp tất cả lại, chúng ta sẽ có đoạn mã sau:
<?php
$min = 1;
$max = 5;
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
$res = $pdo->prepare($sql);
$res->execute([
'min' => $min,
'max' => $max
]);
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Cho một biến:
<?php
$age = 30;
?>
Tìm tất cả người dùng có tuổi bằng giá trị được cho trong biến.
Cho các biến:
<?php
$age1 = 20;
$age2 = 30;
?>
Tìm tất cả người dùng có tuổi nằm trong khoảng được xác định bởi giá trị của các biến.
Cho các biến:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Tìm tất cả người dùng có tuổi VÀ mức lương nằm trong khoảng được xác định bởi giá trị của các biến.