Ονομασμένοι Θέτοι (Placeholders) στο PDO της PHP
Για ευκολία, μπορούν να χρησιμοποιηθούν ονομασμένοι θέτοι (placeholders), όπου η σειρά των μεταβλητών στον πίνακα δεν είναι σημαντική. Ας δούμε πώς να δουλέψουμε μαζί τους.
Ας υποθέσουμε ότι έχουμε πάλι τις ακόλουθες μεταβλητές:
<?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;
?>
Βρείτε όλους τους χρήστες, των οποίων η ηλικία ΚΑΙ ο μισθός βρίσκονται στην περιοχή, που ορίζεται από τις τιμές των μεταβλητών.