Nazwane placeholdery w PDO w PHP
Dla wygody można używać nazwanych placeholderów, w których kolejność następowania zmiennych w tablicy nie ma znaczenia. Spójrzmy, jak z nimi pracować.
Załóżmy, że znowu mamy następujące zmienne:
<?php
$min = 1;
$max = 5;
?>
Wykonajmy zapytanie SQL, używając nazwanych placeholderów. Ich składnia jest taka: dwukropek, a potem nazwa placeholderu. Skorzystajmy z nich w zapytaniu:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Przygotowujemy zapytanie:
<?php
$res = $pdo->prepare($sql);
?>
Wykonujemy zapytanie, przekazując mu jako parametry tablicę asocjacyjną, gdzie kluczami będą nazwy placeholderów w zapytaniu SQL, a wartościami - odpowiednie zmienne:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Możemy spojrzeć na wynik:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Zbierzmy wszystko razem i otrzymamy następujący kod:
<?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);
}
?>
Dana jest zmienna:
<?php
$age = 30;
?>
Znajdź wszystkich użytkowników, u których wiek jest równy wartości podanej w zmiennej.
Dane są zmienne:
<?php
$age1 = 20;
$age2 = 30;
?>
Znajdź wszystkich użytkowników, u których wiek mieści się w zakresie, określonym przez wartości zmiennych.
Dane są zmienne:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Znajdź wszystkich użytkowników, u których wiek ORAZ pensja mieszczą się w zakresie, określonym przez wartości zmiennych.