如果我运行下面的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