Пазіцыйная прывязка зменных у PDO ў PHP
Можна прывязваць зменныя да запыту па адной.
Гэта робіцца з дапамогай метаду bindValue.
Затым атрыманы запыт выконваюць, але
ў гэтым выпадку ў execute нічога не перадаецца.
Такая прывязка дазваляе дакладна паказаць тып зменнай, адмяняючы аўтоабаrtнанне ў двукоссі для лікавых значэнняў. Давайце паглядзім, як гэта робіцца. Хай у нас ёсць дзве зменныя, радковая і лікавая:
<?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;
?>
Атрымайце юзераў, у якіх узрост супадае са значэннем адной ці другой зменнай.