Именовани плејсхолдери у 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;
?>
Пронађите све кориснике чија старост И плата леже у опсегу задатом вредностима променљивих.