Փոփոխականների դիրքային կապում PDO-ում PHP-ում

Կարելի է փոփոխականները կապել հարցմանը մեկ առ մեկ: Դա արվում է bindValue մեթոդի միջոցով: Այնուհետև ստացված հարցումը կատարվում է, բայց այս դեպքում execute-ին ոչինչ չի փոխանցվում:

Նման կապումը թույլ է տալիս ճշգրիտ նշել փոփոխականի տեսակը, վերացնելով ավտոմատ չակերտների մեջ առնելը թվային արժեքների համար: Եկեք տեսնենք, թե ինչպես է դա արվում: Ենթադրենք, մենք ունենք երկու փոփոխական՝ tողային և թվային:

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

Ստացեք օգտատերերին, որոնց տարիքը համընկնում է մեկ կամ երկրորդ փոփոխականի արժեքի հետ: