【发布时间】:2015-02-12 01:37:07
【问题描述】:
PDO 提供启动、提交和回滚事务的功能:
$dbh->beginTransaction();
$sth = $dbh->prepare('
...
');
$sth->execute(); // in real code some values will be bound
$dbh->commit();
是否有任何理由使用 PDO 函数而不是简单地使用 MySQL 中的事务语句?即:
$sth = $dbh->prepare('
START TRANSACTION;
...
COMMIT;
');
$sth->execute(); // in real code some values will be bound
更新: 只是给其他正在研究此问题的人的注释,经过一些测试后,我实际上发现了上面的第二种情况(在 prepare() 中使用 START TRANSACTION 和 COMMIT)将导致抛出异常。因此,为了使用带有预准备语句的事务,您必须使用第一种情况中显示的 PDO 函数。
【问题讨论】:
标签: php mysql pdo transactions