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

Жашы биринчи же экинчи өзгөрмөнүн мааниси менен дал келген колдонуучуларды алыңыз.