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

PDO-Transaktionsanweisung mit Ausgabefehler beim Einfügen und Abrufen

Sie sollten niemals mehrere Anweisungen mit einem einzigen Aufruf ausführen. Es funktioniert nicht, wenn Sie native Präparate verwenden, und es ist schwierig, es richtig hinzubekommen.

Teilen Sie es in mehrere Anweisungen auf und verwenden Sie die Funktionen von PDO, um die zuletzt eingefügte ID zu erhalten.

$connection->beginTransaction();

$tr = $connection->prepare("INSERT INTO data(name, address, dated) VALUES('Umesh', 'Kathmandu', NOW())");
$tr->execute();
$DataID = $connection->lastInsertId();

$tr = $connection->prepare("INSERT INTO activity(data_id, activity, dated) VALUES(:DataID, 'Test Implemented', NOW() )");
$tr->execute(['DataID' => $DataID]);
$ActID = $connection->lastInsertId();

$connection->commit();


print_r($DataID, $ActID);