Vinculación posicional de variables en PDO en PHP
Se pueden vincular variables a la consulta una por una.
Esto se hace usando el método bindValue.
Luego, la consulta resultante se ejecuta, pero
en este caso no se pasa nada a execute.
Esta vinculación permite especificar con precisión el tipo de variable, evitando el entrecomillado automático para valores numéricos. Veamos cómo se hace. Supongamos que tenemos dos variables, una cadena y una numérica:
<?php
$name = 'name1';
$age = 25;
?>
Prepararemos la consulta:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Ahora vincularemos las variables a la consulta
utilizando el método bindValue.
En el primer parámetro del método se especifica
el número de posición en la consulta, en el segundo
parámetro - el nombre de la variable,
y en el tercero se indica el tipo de variable (numérico
o de cadena):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Ejecutaremos la consulta:
<?php
$res->execute();
?>
Veamos el resultado:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Se dan las variables:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Obtenga los usuarios cuyo nombre coincida con el valor de una u otra variable.
Se dan las variables:
<?php
$age1 = 21;
$age2 = 22;
?>
Obtenga los usuarios cuya edad coincida con el valor de una u otra variable.