我有一个 MySQL 表的触发器,当提供的数据有问题时,它会引发 SIGNAL 异常。如何使用 PDO 在 PHP 中捕获此异常?
提前致谢。
更新
关于我的问题的更多信息:我在一个事务中执行多个查询,如果其中一个因为有信号而失败,我想回滚事务。当前激活了一个信号,但执行了所有其他查询。
另一个更新
到目前为止,我有:
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();
}
这是处理异常进行事务的正确方法吗?对不起,如果我的问题太宽泛了。