ცვლადების პოზიციური მიბმა PDO-ში PHP-ში

შესაძლებელია ცვლადების მოთხოვნასთან მიბმა სათითაოდ. ეს კეთდება bindValue მეთოდის საშუალებით. შემდეგ მიღებული მოთხოვნა შესრულებულია, მაგრამ ამ შემთხვევაში execute-ში არაფერი გადაეცემა.

ასეთი მიბმა საშუალებას აძლევს ზუსტად მიუთითოთ ცვლადის ტიპი, რაც აუქმებს ავტომატურ ბრჭყალებში მოთავსებას რიცხვითი მნიშვნელობებისთვის. მოდით ვნახოთ, როგორ კეთდება ეს. დავუშვათ, გვაქვს ორი ცვლადი, სტრიქონული და რიცხვითი:

php<?php
  $name = 'name1';
  $age  = 25;
?>

მოვამზადოთ მოთხოვნა:

php<?php
  $sql = 'SELECT * FROM users WHERE name=? or age=?';
  $res = $pdo->prepare($sql);
?>

ახლა მივაბათ ცვლადები მოთხოვნასთან bindValue მეთოდის გამოყენებით. მეთოდის პირველ პარამეტრში მითითებულია პოზიციის ნომერი მოთხოვნაში, მეორე პარამეტრში - ცვლადის სახელი, ხოლო მესამეში მითითებულია ცვლადის ტიპი (რიცხვითი ან სტრიქონული):

php<?php
  $res->bindValue(1, $name, PDO::PARAM_INT);
  $res->bindValue(2, $age,  PDO::PARAM_STR);
?>

შევასრულოთ მოთხოვნა:

php<?php
  $res->execute();
?>

მოდით ვნახოთ შედეგი:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>
Задание 1

მოცემულია ცვლადები:

php<?php
  $name1 = 'name1';
  $name2 = 'name2';
?>

მიიღეთ მომხმარებლები, რომელთა სახელი ემთხვევა ერთ-ერთი ცვლადის მნიშვნელობას.

Задание 2

მოცემულია ცვლადები:

php<?php
  $age1 = 21;
  $age2 = 22;
?>

მიიღეთ მომხმარებლები, რომელთა ასაკი ემთხვევა ერთ-ერთი ცვლადის მნიშვნელობას.