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