Placeholders nommés en PDO en PHP
Pour plus de commodité, vous pouvez utiliser des placeholders nommés, où l'ordre des variables dans le tableau n'a pas d'importance. Voyons comment les utiliser.
Supposons que nous ayons à nouveau les variables suivantes :
<?php
$min = 1;
$max = 5;
?>
Créons une requête SQL en utilisant des placeholders nommés. Leur syntaxe est la suivante : deux-points, puis le nom du placeholder. Utilisons-les dans la requête :
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Préparons la requête :
<?php
$res = $pdo->prepare($sql);
?>
Exécutons la requête en lui passant en paramètres un tableau associatif, où les clés seront les noms des placeholders dans la requête SQL, et les valeurs - les variables correspondantes :
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Nous pouvons visualiser le résultat :
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Rassemblons tout et nous obtenons le code suivant :
<?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);
}
?>
Une variable est donnée :
<?php
$age = 30;
?>
Trouvez tous les utilisateurs dont l'âge est égal à la valeur spécifiée dans la variable.
Des variables sont données :
<?php
$age1 = 20;
$age2 = 30;
?>
Trouvez tous les utilisateurs dont l'âge se situe dans la plage définie par les valeurs des variables.
Des variables sont données :
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Trouvez tous les utilisateurs dont l'âge ET le salaire se situent dans la plage définie par les valeurs des variables.