php中的事务处理 mysqli

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!

<?php
$db = new mysqli("localhost","root","","test"); //连接数据库

$db->autocommit(false); //设置为非自动提交——事务处理

$sql1  = "INSERT INTO `test`.`test1` (`name` )VALUES ('1' )";

$result1 = $db->query($sql1);

$sql2  = "INSERT INTO `test`.`test2` (`a` )VALUES ('1')";

$result2 = $db->query($sql2);

if ($result1 && $result2) {

$db->commit();  //全部成功,提交执行结果

echo '提交';

} else {

$db->rollback(); //有任何错误发生,回滚并取消执行结果

echo '回滚';

}

$db->autocommit(true); //设置为非自动提交——事务处理

$db->close();

?>