Ejecución múltiple de sentencias preparadas en PDO en PHP
Podemos ejecutar una sentencia preparada para consultar la base de datos varias veces. Esto es un poco más ventajoso en términos de recursos que prepararla de nuevo cada vez.
Supongamos, por ejemplo, que necesitamos hacer consultas de actualización de los salarios de los usuarios en una tabla.
Supongamos que ya tenemos un array asociativo,
en el cual la clave será el
id del usuario, y el valor -
su salario:
<?php
$salaries = [
1 => 200,
3 => 500,
5 => 700,
];
?>
Preparamos la consulta una vez:
<?php
$res = $pdo->prepare('UPDATE users SET salary=? WHERE id=?');
?>
Y ahora en un bucle recorreremos nuestro array y ejecutaremos nuestra consulta preparada en cada iteración con diferentes datos para los marcadores de posición:
<?php
foreach ($salaries as $id => $salary) {
$res->execute([$salary, $id]);
}
?>
Se da un array con IDs y edades de usuarios:
<?php
$ages = [
1 => 20,
3 => 30,
5 => 40,
];
?>
Escriba el código que en un bucle actualice los datos de los usuarios.