我想在MySQL中使用事務,我的問題是如何檢查查詢是否成功提交?我的查詢是:檢查事務的狀態 - MySQL和PHP
mysql_query("START TRANSACTION");
$query_1 = mysql_query("DELETE FROM BLAH WHERE BLAH");
$query_2 = mysql_query("DELETE FROM BLAH WHERE BLAH");
mysql_query("COMMIT");
據我所知,上面的代碼做交易,但我要檢查,如果查詢成功或者未提交,因此:
mysql_query("START TRANSACTION");
$query_1 = mysql_query("DELETE FROM BLAH WHERE BLAH");
$query_2 = mysql_query("DELETE FROM BLAH WHERE BLAH");
if($query_1 && $query_2){
mysql_query(COMMIT);
}else{
mysql_query(ROLLBACK);
}
但我讀當我們調用「COMMIT
」時,查詢會提交,所以上面的代碼不應該工作,因爲當我們檢查$query_1 && $query_2
時,實際上什麼都沒有提交給db,因爲它在「COMMIT
」查詢之前,我該如何執行這樣的檢查?
在此先感謝
P.S:我正在做的一切正確嗎?請讓我知道是否還有其他更好的方法...謝謝
看看這個 - http://stackoverflow.com/questions/13148630/how-do-i-find-which-transaction-is-causing-a-waiting-for-table-metadata-lock-s/13155778#13155778 – Joddy
this too http://stackoverflow.com/questions/2708237/php-mysql-transactions-examples –