Mysql
 sql >> Base de données >  >> RDS >> Mysql

Instruction de transaction PDO avec erreur d'insertion et de récupération de sortie

Vous ne devez jamais exécuter plusieurs instructions à l'aide d'un seul appel. Cela ne fonctionnera pas si vous utilisez des préparations natives et il est difficile de bien faire les choses.

Divisez-le en plusieurs instructions et utilisez les fonctions de PDO pour obtenir le dernier ID inséré.

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