Pojmenované zástupné symboly v PDO v PHP

Pro pohodlí lze použít pojmenované zástupné symboly, kde pořadí proměnných v poli není důležité. Podívejme se, jak s nimi pracovat.

Předpokládejme, že máme opět následující proměnné:

php<?php
  $min = 1;
  $max = 5;
?>

Vytvořme SQL dotaz s použitím pojmenovaných zástupných symbolů. Jejich syntaxe je: dvojtečka, a poté název zástupného symbolu. Použijme je v dotazu:

php<?php
  $sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>

Připravíme dotaz:

php<?php
  $res = $pdo->prepare($sql);
?>

Spustíme dotaz a předáme mu jako parametry asociativní pole, kde klíče budou názvy zástupných symbolů v SQL dotazu a hodnoty - odpovídající proměnné:

php<?php
  $res->execute([
    'min' => $min,
    'max' => $max
  ]);
?>

Můžeme si zobrazit výsledek:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>

Shromáždíme vše dohromady a dostaneme následující kód:

php<?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);
  }
?>
Задание 1

Je dána proměnná:

php<?php
  $age = 30;
?>

Najděte všechny uživatele, jejichž věk je roven hodnotě zadané v proměnné.

Задание 2

Jsou dány proměnné:

php<?php
  $age1 = 20;
  $age2 = 30;
?>

Najděte všechny uživatele, jejichž věk leží v rozsahu daném hodnotami proměnných.

Задание 3

Jsou dány proměnné:

php<?php
  $age1 = 20;
  $age2 = 30;
  
  $salary1 = 1000;
  $salary2 = 2000;
?>

Najděte všechny uživatele, jejichž věk A plat leží v rozsahu daném hodnotami proměnných.