Mysql
 sql >> Base de données >  >> RDS >> Mysql

existe-t-il une alternative à l'utilisation d'une boucle for pour insérer plusieurs requêtes

Veuillez consulter cette requête en espérant que cela améliorera notre code et notre vitesse.

Évitez de faire des requêtes SQL dans une boucle

Une erreur courante consiste à placer une requête SQL à l'intérieur d'une boucle. Cela entraîne plusieurs allers-retours vers la base de données et des scripts beaucoup plus lents. Dans l'exemple ci-dessous, vous pouvez modifier la boucle pour créer une seule requête SQL et insérer tous vos utilisateurs en même temps.

foreach ($userList as $user) {

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

  mysql_query($query);

  }

Au lieu d'utiliser une boucle, vous pouvez combiner les données en une seule requête de base de données.

$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);