禁用自动提交的副作用

时间:2014-11-06 05:42:53

标签: php mysql wordpress

我们正在尝试使用Wordpress wpdb对象运行事务 - 不确定这是否重要。

wpdb->query('BEGIN TRANSACTION');

// Run transaction related queries

if($error) {
   // ROLLBACK
} else {
   // COMMIT
}

现在看来,mysql将auto_commit设置为true这一点非常棒,这会导致执行后的每个查询都自动提交。我们了解到,我们可以通过运行SET auto_commit = 0来禁用此功能。

在我们的查询结束时,我们将运行SET auto_commit = 1。我的问题是,这会影响同时在DB上运行的任何其他查询吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,并非每个数据库都支持事务,因此当您第一次打开连接时,PDO需要以所谓的“自动提交”模式运行。自动提交模式意味着您运行的每个查询都有自己的隐式事务(如果数据库支持它),或者如果数据库不支持事务则没有事务。如果您需要事务,则必须使用PDO :: beginTransaction()方法来启动事务 现在猜它好还是坏?