sql >> Databasteknik >  >> RDS >> Mysql

PDO-transaktionssats med infoga och hämta utdatafel

Du bör aldrig köra flera satser med ett enda anrop. Det fungerar inte om du använder inhemska förberedelser och det är svårt att få det rätt.

Dela upp det i flera satser och använd PDO:s funktioner för att få det senast infogade ID:t.

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



  1. Postgres COUNT antal kolumnvärden med INNER JOIN

  2. SQL Server-systemdatabaser – grundläggande koncept

  3. Dynamisk datamaskering i SQL Server för nybörjare

  4. PDO och MySQL fulltextsökningar