Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es eine Alternative zur Verwendung einer for-Schleife zum Einfügen mehrerer Abfragen?

Bitte sehen Sie sich diese Abfrage an, in der Hoffnung, dass dies unseren Code und unsere Geschwindigkeit verbessert.

Vermeiden Sie SQL-Abfragen innerhalb einer Schleife

Ein häufiger Fehler besteht darin, eine SQL-Abfrage innerhalb einer Schleife zu platzieren. Dies führt zu mehreren Roundtrips zur Datenbank und deutlich langsameren Skripts. Im Beispiel unten können Sie die Schleife ändern, um eine einzelne SQL-Abfrage zu erstellen und alle Ihre Benutzer auf einmal einzufügen.

foreach ($userList as $user) {

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

  mysql_query($query);

  }

Anstatt eine Schleife zu verwenden, können Sie die Daten in einer einzigen Datenbankabfrage kombinieren.

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