Mysql
 sql >> база данни >  >> RDS >> Mysql

има ли алтернатива на използването на for цикъл за вмъкване на множество заявки

Моля, вижте това запитване, надяваме се, че това ще подобри нашия код и скорост.

Избягвайте да правите SQL заявки в рамките на цикъл

Често срещана грешка е поставянето на SQL заявка вътре в цикъл. Това води до множество двупосочни пътувания до базата данни и значително по-бавни скриптове. В примера по-долу можете да промените цикъла, за да създадете една SQL заявка и да вмъкнете всичките си потребители наведнъж.

foreach ($userList as $user) {

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

  mysql_query($query);

  }

Вместо да използвате цикъл, можете да комбинирате данните в една заявка към база данни.

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-ефективният начин за избор на хиляди редове от списък с идентификатори

  2. как да извлечете стойности от база данни, които не са нула

  3. LEFT JOIN не се държи според очакванията, тъй като дава NULL в MySQL

  4. MySQL - Извличане на най-ниската стойност

  5. CURRENT_DATE/CURDATE() не работи като стойност на DATE по подразбиране