Именовани плејсхолдери у PDO-у у PHP-у

Због погодности могу се користити именовани плејсхолдери, код којих редослед променљивих у низу није битан. Хајде да видимо како се ради са њима.

Нека поново имамо следеће променљиве:

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

Направимо SQL упит, користећи именоване плејсхолдере. Њихова синтакса је: две тачке, а затим име плејсхолдера. Искористимо их у упиту:

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

Припремамо упит:

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

Извршавамо упит, проследивши му као параметре асоцијативни низ, где ће кључеви бити имена плејсхолдера у SQL упиту, а вредности - одговарајуће променљиве:

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

Можемо погледати резултат:

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

Сакупимо све заједно и добићемо следећи код:

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

Дата је променљива:

php<?php
  $age = 30;
?>

Пронађите све кориснике чија је старост једнака задатој вредности у променљивој.

Задание 2

Дате су променљиве:

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

Пронађите све кориснике чија старост лежи у опсегу задатом вредностима променљивих.

Задание 3

Дате су променљиве:

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

Пронађите све кориснике чија старост И плата леже у опсегу задатом вредностима променљивих.