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;
?>
Жасы бірінші немесе екінші айнымалының мәніне сәйкес келетін пайдаланушыларды алыңыз.