提供されたデータに問題がある場合、SIGNAL で例外を発生させる MySQL テーブルの TRIGGER があります。PDO を使用して PHP でこの例外をキャッチするにはどうすればよいですか?
前もって感謝します。
アップデート
私の問題の詳細: トランザクション内で複数のクエリを実行していますが、SIGNAL があったためにそのうちの 1 つが失敗した場合、トランザクションをロールバックしたいと考えています。現在、シグナルはアクティブ化されていますが、他のすべてのクエリは実行されています。
別の更新
これまでのところ、私は持っています:
try {
$db->beginTransaction();
if (!$db->query('UPDATE accounts SET amount = amount - 10 WHERE id = 1')) {
throw new Exception($db->errorInfo()[2]);
}
if (!$db->query('UPDATE accounts SET amount = amount + 10 WHERE id = 2')) {
throw new Exception($db->errorInfo()[2]);
}
$db->commit();
} catch (Exception $e) {
$db->rollback();
echo 'There was an error: ' . $e->getMessage();
}
これは、例外を処理してトランザクションを行う適切な方法ですか? 私の質問が広すぎる場合は申し訳ありません。