用PHP+mysql,由于程序中需要同时像两个表中插入数据,而且不能插错,因此应该定义一个事物操作。要么两条都做,要么两条都不做。
我用的mysql4.0不支持存储过程,请问PHP或者mysql中有什么方法可以实现事物操作吗?
---------------------------------------------------------------
1
2$handler=mysql_connect("localhost","","");
3mysql_select_db("task");
4mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
5mysql_query("BEGIN");//开始事务定义
6if(!mysql_query("insert into trans (id) values('2')"))
7{
8mysql_query("ROOLBACK");//判断当执行失败时回滚
9}
10if(!mysql_query("insert into trans (id) values('4')"))
11{
12mysql_query("ROOLBACK");//判断执行失败回滚
13}
14mysql_query("COMMIT");//执行事务
15mysql_close($handler);