Именувани плејсхолдери во 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 барањето, a вредностите - соодветните променливи:

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;
?>

Пронајдете ги сите корисници, кај кои возраст И плата лежат во опсег, зададен со вредностите на променливите.