2014-11-06 66 views
0

我們正在嘗試使用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。我的問題是,這會影響同時在數據庫上運行的任何其他查詢嗎?

回答

0

不幸的是,並非每個數據庫都支持事務處理,所以當您第一次打開連接時,PDO需要以所謂的「自動提交」模式運行。自動提交模式意味着您運行的每個查詢都有其自己的隱式事務(如果數據庫支持它),或者如果數據庫不支持事務,則無事務。如果您需要事務,則必須使用PDO :: beginTransaction()方法啓動一個事務。
現在猜猜它是好還是壞?