PHPda PDO orqali o'zgaruvchilarni pozitsion bog'lash
So'rovga o'zgaruvchilarni birma-bir bog'lash mumkin.
Buning uchun bindValue metodi ishlatiladi.
Keyin olingan so'rov bajariladi, lekin
bu holda execute ga hech narsa uzatilmaydi.
Bunday bog'lash o'zgaruvchining aniq turini ko'rsatish imkonini beradi, raqamli qiymatlar uchun avtomatik tirnoq qo'shilishini bekor qiladi. Keling, buning qanday amalga oshirilishini ko'ramiz. Faraz qilaylik, bizda ikkita o'zgaruvchi bor, matnli va raqamli:
<?php
$name = 'name1';
$age = 25;
?>
So'rovni tayyorlaymiz:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Endi bindValue metodi yordamida
o'zgaruvchilarni so'rovga bog'laymiz.
Metodning birinchi parametrida so'rovdagi
pozitsiya raqami, ikkinchi parametrida -
o'zgaruvchi nomi,
uchinchisida esa o'zgaruvchi turi (raqamli
yoki matnli) ko'rsatiladi:
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
So'rovni bajaramiz:
<?php
$res->execute();
?>
Natijani ko'ramiz:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Quyidagi o'zgaruvchilar berilgan:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Ismi biror o'zgaruvchi qiymatiga mos keladigan foydalanuvchilarni oling.
Quyidagi o'zgaruvchilar berilgan:
<?php
$age1 = 21;
$age2 = 22;
?>
Yoshi biror o'zgaruvchi qiymatiga mos keladigan foydalanuvchilarni oling.