簡単な答え:はい。
長い答え:
絶対に、それはトランザクションが設計されているものです。
SQLベンダーがトランザクションをサポートしている限り(mysqlはInnoDBテーブルでサポートします)、それらを使用して一連のクエリを実行できます。
また、各クエリの間にプログラミングを追加できますか?
はい。ただし、サードパーティを更新する場合は、自分で変更をロールバックすることを確認できます。
例:
try {
$db->beginTransaction();
$db->exec('INSERT INTO tableA (id, column) VALUES (NULL, NOW())');
$db->exec('SELECT id FROM tableB ORDER BY id DESC LIMIT 1');
// ...
$httpClient->post(sprintf('/notify/foo/%d?value=ok', $id));
$db->commit();
} catch (\PDOException $e) {
$db->rollback();
$httpClient->post(sprintf('/notify/foo/%d?value=cancel', $id));
}
SAVEPOINT
トランザクションをネストして、InnoDBテーブルで使用できることに注意してください。