如果我運行下面的PHP,我希望沒有價值被插入到測試表,因爲我有我還沒有提交的事務:在PHP中,如果我斷開而不提交,而不是提交,我可以讓MySQL回滾事務嗎?
$db = mysql_connect("localhost","test","test");
mysql_select_db("test");
mysql_query("begin transaction;");
mysql_query("insert into Test values (1);") or die("insert error: ". mysql_errror());
die('Data should not be commited\n');
mysql_query("commit;"); // never occurs because of the die()
但相反,它似乎繼續提交。有沒有辦法關閉這種行爲,而不關閉自動提交的PHP不使用網站上其他地方的交易?
編輯:這只是一個愚蠢的錯字。它應該是「開始交易」或「開始」。不是「開始交易」。對不起,浪費人們的時間。
在我安裝MySQL的,查詢「BEGIN TRANSACTION」給出了錯誤「您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第1行'transaction'附近使用正確的語法「 – mellowsoon 2010-10-25 16:10:03