Іменаваныя плэйсхолдары ў 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;
?>
Знайдзіце ўсіх карыстальнікаў, у якіх узрост І зарплата ляжаць у дыяпазоне, зададзеным значэннямі зменных.