Marcadores de posición nombrados en PDO en PHP
Para mayor comodidad, se pueden utilizar marcadores de posición nombrados, en los que el orden de las variables en el array no es importante. Veamos cómo trabajar con ellos.
Supongamos que tenemos las siguientes variables:
<?php
$min = 1;
$max = 5;
?>
Hagamos una consulta SQL usando marcadores de posición nombrados. Su sintaxis es: dos puntos seguidos del nombre del marcador de posición. Utilicemos ellos en la consulta:
<?php
$sql = 'SELECT * FROM users WHERE id>:min and id<:max';
?>
Preparamos la consulta:
<?php
$res = $pdo->prepare($sql);
?>
Ejecutamos la consulta, pasando como parámetros un array asociativo, donde las claves serán los nombres de los marcadores de posición en la consulta SQL, y los valores - las variables correspondientes:
<?php
$res->execute([
'min' => $min,
'max' => $max
]);
?>
Podemos ver el resultado:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Juntemos todo y obtendremos el siguiente código:
<?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);
}
?>
Se da la variable:
<?php
$age = 30;
?>
Encuentre todos los usuarios cuya edad sea igual al valor especificado en la variable.
Se dan las variables:
<?php
$age1 = 20;
$age2 = 30;
?>
Encuentre todos los usuarios cuya edad esté en el rango definido por los valores de las variables.
Se dan las variables:
<?php
$age1 = 20;
$age2 = 30;
$salary1 = 1000;
$salary2 = 2000;
?>
Encuentre todos los usuarios cuya edad Y salario estén en el rango definido por los valores de las variables.