Позиционo везивање променљивих у 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;
?>
Добијте кориснике чија се старост поклапа са вредношћу прве или друге променљиве.