(26) PHP 随笔---php数据库编程 mysqli扩展数据库
◇mysql扩展库 和 mysqli (mysql improve)扩展库比较: mysqli是mysql增强版扩展,
◇0、mysql是存面向对象的方法,mysqli是具有面向对象和面向过程的两套方法。
◇1、这两个都是php设计者给我们提供的扩展库
◇2、都可以完成对mysql数据库的操作
◇3、mysqli扩展库是mysql扩展库的改进版本
◇4、mysqli扩展库比mysql扩展库效率更高,稳定性更好
◇关闭连接:
◇数据库的链接是非常稀有的资源,用完后要及时释放,如果不能及时、正确的关闭,极易导致系统奔溃。
◇使用的原则是尽量晚创建,尽量早释放。
◇批量执行sql语句: 利用MySQLi::multi_query($sqls);
◇批量执行dml语句
1 $sqls="sql1;sql2;..."; 2 mysqli::multi_query($sqls);
◇批量执行dql语句:作用是可以一次性的取回多个结果集
$sqls="select * from user1;"; $sqls.="select * from user1 where id =6;"; if($res = $mysqli->multi_query($sqls)) { do { $result = $mysqli->store_result(); while($row = $result->fetch_row()) { foreach($row as $key => $val) { echo "--$val"; } echo "<br/>"; } $result -> free(); if(!$mysqli->more_results()) { break; } echo "**********new result************"; }while($mysqli->next_result()); } $mysqli -> close();
◇mysql事务处理:事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。如网上转账就是典型的要用事务来处理,用以保证数据的一致性。
◇事务的使用(四大特点:原子性,一致性,隔离性,持久性):
1 $mysqli->autocommit(false); //设置自动保存为false 2 $mysqli->rollback(); //事务回滚 3 $mysqli->commit(); //提交事务,一旦提交,无法回滚
◇在Mysql的控制台,也可以使用事务来操作,具体步骤如下:
1 start transaction //开启事务 2 savepoint a //设置保存点a 3 .... //进行你的操作 4 rollback to a //如果有问题,就会滚到a保存点 5 commit //如果没问题就提交
$sqls="select * from user1;"; $sqls.="select * from user1 where id =6;"; if($res = $mysqli->multi_query($sqls)) { do { $result = $mysqli->store_result(); while($row = $result->fetch_row()) { foreach($row as $key => $val) { echo "--$val"; } echo "<br/>"; } $result -> free(); if(!$mysqli->more_results()) { break; } echo "**********new result************"; }while($mysqli->next_result()); } $mysqli -> close();