6. 执行数据库事务
事务 (transaction)是作为整个一个单元的一组有序的数据库操作 。 如果一组中的所有操作都成功 , 则认为事务成功 ,即使只有一个失败操作 , 事务也不成功 。 如果所有操作成功完成 , 事务则提交 (commit) ,其修改将作用于所有其他数据库进程 。 如果一个操作失败 , 则事务将回滚 (roll back),该事务所有操作的影响都将取消。
首先 , 您的 MySQL 是InnoDB 或 BDB 引擎的一种 , 一般来说 , 你安装了 AppServ 的集成包 , 你选择 InnoDB的引擎的数据库即可 。 如果你建立的表不是 InnoDB , 可以在 phpmyadmin里修改。
// 首先你必须关闭自动提交数据
$_mysqli->autocommit( false );
// 创建一个 SQL 语句,必须同时运行成功,不能出现一个成功,一个失败
$_sql .="UPDATE tg_friend SET tg_state=tg_state+5 WHERE tg_id=1;" ;
$_sql .="UPDATE tg_flower SET tg_flower=tg_flower-5 WHERE tg_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 );
以上这篇PHP使用mysqli操作MySQL数据库的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易采站长站。







