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

Барча фойдаланувчиларни топинг, уларнинг ёши ВА маоши ўзгарувчиларнинг қийматлари билан берилган диапазонда жойлашган.