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

Wie kann man mehrere Einfügeabfragen in SQL mit PHP auf einmal ausführen?

Das bedeutet, dass Sie eine Transaktion .

Eine Transaktion ist eine Reihe von Abfragen, die entweder alle ordnungsgemäß ausgeführt werden oder, wenn eine fehlschlägt, alle fehlschlagen. Dies soll sicherstellen, dass Sie nicht mit Mistdaten in Ihren Tabellen enden.

Nicht

  • Verwenden Sie keine Mehrfachabfrage.
  • Verwenden Sie nicht mysql_* Funktion(en).
  • Verwenden Sie keine Massenbeilagen.

Leute, die dir das sagen, haben einfach absolut keine Ahnung, was sie tun, ignoriere sie.

Machen

Beispielcode - NICHT kopieren und einfügen

$dsn = 'mysql:dbname=testdb;host=127.0.0.1;charset=utf8mb4';
$user = 'dbuser';
$password = 'dbpass';

$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$insert['first'] = $pdo->prepare("INSERT INTO table SET col1 = :val, col2 = :val2");
$insert['second'] = $pdo->prepare("INSERT INTO another_table SET col1 = :val, col2 = :val2"); 

$pdo->beginTransaction();

$insert['first']->bindValue(':val', 'your value');
$insert['first']->bindValue(':val2', 'anothervalue');
$insert['first']->execute();

$insert['second']->bindValue(':val', 'your value');
$insert['second']->bindValue(':val2', 'anothervalue');
$insert['second']->execute();

$pdo->commit();

Der obige Code speichert die Daten NUR dann in zwei Tabellen, wenn beide Einfügungen erfolgreich sind.