PDO да PHPда ўзгарувчиларни позицион боглаш
Ўзгарувчиларни сўровга битта-битта боглаш мумкин.
Бу bindValue методи ёрдамида бажарилади.
Сўнгра олинган сўров бажарилади, лекин
бу ҳолатда execute-га ҳеч нарса ўтказilмайди.
Бундай боглаш ўзгарувчининг аниқ турини кўрсатиш имконини беради, рақамли қийматлар учун автожарималарни бекор қилади. Кeling, бу қандай бажарилишини кўрамиз. Фарз қилайлик, бизда иккита ўзгарувчи бор, сатр ва рақамли:
<?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;
?>
Ёши биринчи ёки иккинчи ўзгарувчининг қийматига мос келадиган фойдаланувчиларни олинг.