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
- Verwenden Sie PDO
- Verwenden Sie vorbereitete Anweisungen
- Bereiten Sie die Aussage(n) EINMAL vor, verwenden Sie sie MEHRERE Male
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.