PHP 操作 MySQL 执行数据库事务

<?php
$mysqli=new mysqli();//实例化mysqli
$mysqli->connect('localhost','root','admin','test');
if(mysqli_connect_error()){
    exit('数据库连接错误,错误信息是.'.mysqli_connect_error());
}
$mysqli->set_charset("UTF8");//设置数据库编码
//首先你必须关闭自动提交数据
$mysqli->autocommit(false);
//创建一个SQL语句,必须同时运行成功,不能出现一个成功,一个失败
$sql .= "UPDATE `friend` SET state=state+5 WHERE id=1;";
$sql .= "UPDATE `flower` SET tg_flower=flower-5 WHERE id=1;";
//执行两条SQL语句
if ($mysqli->multi_query($sql)) {
//获取第一条SQL一影响的行数
$success = $mysqli->affected_rows == 1 ? true : false;
//下移,第二条SQL
$mysqli->next_result();
//获取第二条SQL影响的行数
$success2 = $mysqli->affected_rows == 1 ? true : false;
//判断是否都正常通过了,两个SQL
if ($success && $success2) {
$mysqli->commit();
echo '完美提交!';
} else {
$mysqli->rollback();
echo '程序出现异常!';}
} else {
echo "SQL语句有误:".$mysqli->errno.$mysqli->error;
}
//最后还必须开启自动提交
$mysqli->autocommit(true);
$result->free();//释放查询内存(销毁)
$mysqli->close();//别忘了关闭你的"小资源";
?>

 

posted @ 2016-07-14 11:57  bobo-bobo  阅读(737)  评论(0编辑  收藏  举报