Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

existe uma alternativa para usar um loop for para inserir várias consultas


Por favor, veja esta consulta, espero que isso melhore nosso código e velocidade.

Evite fazer consultas SQL dentro de um loop

Um erro comum é colocar uma consulta SQL dentro de um loop. Isso resulta em várias viagens de ida e volta ao banco de dados e scripts significativamente mais lentos. No exemplo abaixo, você pode alterar o loop para construir uma única consulta SQL e inserir todos os seus usuários de uma vez.
foreach ($userList as $user) {

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

  mysql_query($query);

  }

Em vez de usar um loop, você pode combinar os dados em uma única consulta de banco de dados.
$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);