sql >> Base de Datos >  >> RDS >> Mysql

¿Existe una alternativa al uso de un bucle for para insertar varias consultas?

Consulte esta consulta, espero que esto mejore nuestro código y velocidad.

Evite hacer consultas SQL dentro de un bucle

Un error común es colocar una consulta SQL dentro de un bucle. Esto da como resultado múltiples viajes de ida y vuelta a la base de datos y scripts significativamente más lentos. En el siguiente ejemplo, puede cambiar el bucle para crear una sola consulta SQL e insertar todos sus usuarios a la vez.

foreach ($userList as $user) {

  $query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';

  mysql_query($query);

  }

En lugar de usar un bucle, puede combinar los datos en una sola consulta de base de datos.

$userData = array();

foreach ($userList as $user) {

    $userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';

}

$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $userData);

mysql_query($query);