Pomenované placeholdery v PDO v PHP
Pre pohodlie môžete použiť pomenované placeholdery, v ktorých poradie premenných v poli nie je dôležité. Pozrime sa, ako s nimi pracovať.
Predpokladajme, že máme opäť nasledujúce premenné:
<?php
$min = 1;
$max = 5;
?>
Vytvorme SQL dopyt pomocou pomenovaných placeholderov. Ich syntax je taká: dvojbodka, a potom názov placeholderu. Použime ich v dopyt:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Pripravíme dopyt:
<?php
$res = $pdo->prepare($sql);
?>
Vykonáme dopyt, odovzdaním parametrov asociatívneho poľa, kde kľúčmi budú názvy placeholderov v SQL dopyt, a hodnotami - príslušné premenné:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Môžeme si pozrieť výsledok:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Zhromaždíme všetko dokopy a získame nasledujúci kód:
<?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);
}
?>
Daná premenná:
<?php
$age = 30;
?>
Nájdite všetkých používateľov, ktorých vek sa rovná zadanej hodnote premennej.
Dané premenné:
<?php
$age1 = 20;
$age2 = 30;
?>
Nájdite všetkých používateľov, ktorých vek leží v rozsahu, zadanom hodnotami premenných.
Dané premenné:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Nájdite všetkých používateľov, ktorých vek A plat ležia v rozsahu, zadanom hodnotami premenných.