使用普通的mysql函数来实现数据库事务,同时实现回滚操作,请看下面的代码:
- $handler = mysql_connect('localhost', '', '');
- mysql_select_db('test');
- mysql_query('SET AUTOCOMMIT=0'); // 设置为不自动提交查询
- mysql_query('START TRANSACTION'); // 开始查询,这里也可以使用BEGIN
- mysql_query("INSERT INTO users VALUES ('ccc')");
- mysql_query("DELETE FROM users WHERE username = 'aac'");
- if (mysql_affected_rows($handler) == 0)
- mysql_query('ROLLBACK'); // 如果删除未找到相应的记录则回滚,不执行上面的插入查询
- mysql_query('COMMIT');
- mysql_close($handler);
如果查询是通过自定义函数来实现的,而且函数中还有其他的一些操作,那么同样可以采用这样的方法。