PHP-də PDO ilə dəyişənlərin mövqeli bağlanması
Dəyişənləri sorğuya bir-bir bağlamaq olar.
Bu, bindValue metodu ilə edilir.
Sonra alınan sorğu icra olunur, lakin
bu halda execute-ə heç nə ötürülmür.
Belə bir bağlama dəyişənin tipini dəqiq müəyyən etməyə imkan verir, rəqəmsal dəyərlər üçün avtomatik dırnaq içərisinə almağı ləğv edir. Gəlin görək bu necə edilir. Tutaq ki, bizim iki dəyişənimiz var, sətir və rəqəmsal:
<?php
$name = 'name1';
$age = 25;
?>
Gəlin sorğunu hazırlayaq:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
İndi bindValue metodu ilə dəyişənləri
sorğuya bağlayaq.
Metodun birinci parametrində sorğunun
mövqe nömrəsi, ikinci parametrdə -
dəyişənin adı,
üçüncü parametrdə isə dəyişənin tipi (rəqəmsal
ya da sətir) göstərilir:
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Gəlin sorğunu icra edək:
<?php
$res->execute();
?>
Gəlin nəticəyə baxaq:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Dəyişənlər verilib:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Adı birinci və ya ikinci dəyişənin dəyəri ilə üst-üstə düşən istifadəçiləri əldə edin.
Dəyişənlər verilib:
<?php
$age1 = 21;
$age2 = 22;
?>
Yaşı birinci və ya ikinci dəyişənin dəyəri ilə üst-üstə düşən istifadəçiləri əldə edin.