Позиционно свързване на променливи в PDO в PHP
Можете да свързвате променливи към заявката една по една.
Това се прави с помощта на метода bindValue.
След това получената заявка се изпълнява, но
в този случай в execute не се подава нищо.
Такова свързване позволява точно указване на типа на променливата, отменяйки автоматичното ограждане в кавички за числови стойности. Нека да видим как се прави това. Да предположим, че имаме две променливи, низова и числова:
<?php
$name = 'name1';
$age = 25;
?>
Нека подготвим заявката:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Сега нека свържем променливите към заявката с
помощта на метода bindValue.
В първия параметър на метода се посочва
номерът на позицията в заявката, във втория
параметър - името на променливата,
а в третия се посочва типът на променливата (числов
или низов):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Нека изпълним заявката:
<?php
$res->execute();
?>
Нека разгледаме резултата:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Дадени са променливи:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Вземете потребителите, чието име съвпада със стойността на едната или другата променлива.
Дадени са променливи:
<?php
$age1 = 21;
$age2 = 22;
?>
Вземете потребителите, чиято възраст съвпада със стойността на едната или другата променлива.