日期:2014-05-17  浏览次数:20503 次

php事务未成功,
PHP code
<?php
$conn = mysql_connect('localhost','root','123123') or die ("123!!!");
mysql_select_db('eshop',$conn);
mysql_query("set names 'GBK'"); //使用GBK中文编码;
?>
<?php
mysql_query("SET AUTOCOMMIT=0"); 
$sql = "INSERT INTO `basket` (`id`, `status`, `qty`) VALUES (NULL, 'test1', '0')";
$sql2 = "INSERT INTO `basket` (`isd`, `status`, `qty`) VALUES (NULL, 'test1', '0')";//这条我故意写错
$res = mysql_query($sql);
$res1 = mysql_query($sql2); 
if($res && $res1){
mysql_query("COMMIT");
echo 'ss';
}else{
mysql_query("ROLLBACK");
echo 'dddd';
}
mysql_query("END"); 
?>


以上代码,由于sql2之错误,所以不能提交的。但是,我run以后,还是插入了一条数据啊?可悲啊》为何不执行回滚,再删除那条数据呢?不解。

------解决方案--------------------
因为你写的一条算一个事务 当然不会回滚第一条了


要想回滚第一条

start transaction;
insert 。。
insert。。。
commit;
------解决方案--------------------
为什么只有你自己知道,没难度。
------解决方案--------------------
innodb支持事务,myisam不支持事务
------解决方案--------------------
[Quote=引用:]

[Quote=引用:]

为什么只有你自己知道,没难度。
[/Quote]

天哪,好汉,你竟说没难度,你问问我论坛有几人能

你真能吹。
[/Quote]

有几人能。。。 你说这种大话真不怕丢脸, 去看看TAOBAO公开的技术架构演变, 看看人家怎么拆表拆库还保证可以做事务吧。


[Quote=引用:]

引用:

innodb支持事务,myisam不支持事务

好汉,正解。看来以来,要将后者弃之
[/Quote]

这话说的,楼主不怕天下人耻笑。