PDO да номланган плейсхолдерлар PHP да
Қулайлиги учун номланган плейсхолдерлардан фойдаланиш мумкин, уларда массивдаги ўзгарувчиларнинг тартиби мухим эмас. Келинг, улар билан қандай ишлашни кўрамиз.
Яна қилингки, бизда куйидаги ўзгарувчилар мавжуд:
<?php
$min = 1;
$max = 5;
?>
SQL сўровни амалга оширамиз, номланган плейсхолдерлардан фойдаланамиз. Уларнинг синтаксиси шундай: икки нуқта, сўнгра плейсхолдер номи. Сўровда улардан фойдаланамиз:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Сўровни тайёрлаймиз:
<?php
$res = $pdo->prepare($sql);
?>
Сўровни бажарамиз, унга параметр сифатида ассоциатив массивни бертамиз, бунда калитлар SQL сўровдаги плейсхолдер номлари бўлади, қийматлар эса - мос келган ўзгарувчилар:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Натижани кўришимиз мумкин:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Ҳаммасини бирга тутиб, куйидаги кодни оламиз:
<?php
$min = 1;
$max = 5;
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
$res = $pdo->prepare($sql);
$res->execute([
'min' => $min,
'max' => $max
]);
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Берилган ўзгарувчи:
<?php
$age = 30;
?>
Барча фойдаланувчиларни топинг, уларнинг ёши берилган ўзгарувчидаги қийматга тенг бўлган.
Берилган ўзгарувчилар:
<?php
$age1 = 20;
$age2 = 30;
?>
Барча фойдаланувчиларни топинг, уларнинг ёши ўзгарувчиларнинг қийматлари билан берилган диапазонда жойлашган.
Берилган ўзгарувчилар:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Барча фойдаланувчиларни топинг, уларнинг ёши ВА маоши ўзгарувчиларнинг қийматлари билан берилган диапазонда жойлашган.