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();//别忘了关闭你的"小资源"; ?>