Именувани плейсхолдери в PDO в PHP
За удобство може да се използват именувани плейсхолдери, при които редът на следване на променливите в масива няма значение. Нека да видим как се работи с тях.
Нека отново имаме следните променливи:
<?php
$min = 1;
$max = 5;
?>
Нека направим SQL заявка, използвайки именувани плейсхолдери. Техният синтаксис е: двоеточие, последвано от името на плейсхолдера. Да използваме ги в заявката:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Подготвяме заявката:
<?php
$res = $pdo->prepare($sql);
?>
Изпълняваме заявката, като й подаваме като параметри асоциативен масив, където ключовете са имената на плейсхолдерите в SQL заявката, а стойностите - съответните променливи:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Можем да проверим резултата:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Нека съберем всичко заедно и получим следния код:
<?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);
}
?>
Дадена е променлива:
<?php
$age = 30;
?>
Намерете всички потребители, чиято възраст е равна на зададената в променливата стойност.
Дадени са променливи:
<?php
$age1 = 20;
$age2 = 30;
?>
Намерете всички потребители, чиято възраст е в диапазона, зададен от стойностите на променливите.
Дадени са променливи:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Намерете всички потребители, чиято възраст И заплата са в диапазона, зададен от стойностите на променливите.