sql >> Database teknologi >  >> RDS >> Mysql

er der et alternativ til at bruge en for-løkke til at indsætte flere forespørgsler

Se venligst denne forespørgsel, håber dette vil forbedre vores kode og hastighed.

Undgå at lave SQL-forespørgsler i en loop

En almindelig fejl er at placere en SQL-forespørgsel inde i en loop. Dette resulterer i flere rundrejser til databasen og betydeligt langsommere scripts. I eksemplet nedenfor kan du ændre løkken for at bygge en enkelt SQL-forespørgsel og indsætte alle dine brugere på én gang.

foreach ($userList as $user) {

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

  mysql_query($query);

  }

I stedet for at bruge en loop, kan du kombinere dataene til en enkelt databaseforespørgsel.

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


  1. køber, der har købt iPhone, returnerer tom

  2. Hvordan kan jeg bruge PDO til at hente et resultatarray i PHP?

  3. SQL Server rekursiv selvtilslutning

  4. Er det muligt at bruge mysqli som databasedriver i Laravel?