Именувани плејсхолдери во 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 барањето, a вредностите - соодветните променливи:
<?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;
?>
Пронајдете ги сите корисници, кај кои возраст И плата лежат во опсег, зададен со вредностите на променливите.