Navngivne pladsholdere i PDO i PHP
For nemheds skyld kan man bruge navngivne pladsholdere, hvor rækkefølgen af variabler i arrayet ikke betyder noget. Lad os se på, hvordan man arbejder med dem.
Lad os igen have følgende variabler:
<?php
$min = 1;
$max = 5;
?>
Lad os lave en SQL-forespørgsel, hvor vi bruger navngivne pladsholdere. Deres syntaks er: et kolon efterfulgt af pladsholderens navn. Lad os bruge dem i forespørgslen:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Forbereder forespørgslen:
<?php
$res = $pdo->prepare($sql);
?>
Udfører forespørgslen ved at give den et associativt array som parametre, hvor nøglerne er navnene på pladsholderne i SQL-forespørgslen, og værdierne er de tilsvarende variabler:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Vi kan se resultatet:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Lad os samle alt sammen og få følgende kode:
<?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);
}
?>
Der er givet en variabel:
<?php
$age = 30;
?>
Find alle brugere, hvis alder er lig med værdien sat i variablen.
Der er givet variabler:
<?php
$age1 = 20;
$age2 = 30;
?>
Find alle brugere, hvis alder ligger i intervallet bestemt af variablernes værdier.
Der er givet variabler:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Find alle brugere, hvis alder OG løn ligger i intervallet bestemt af variablernes værdier.