mysqli扩展库的批量操作和事务处理
来源:互联网 发布:option键是哪个 mac 编辑:程序博客网 时间:2024/06/05 04:14
php和jdbc一样也可以批量处理数据和进行事务处理,php要实现这2种操作还是很简单的,下面就来分享下我的学习经验
1.批量查询数据
mysqli处理批量查询可以使用multi_query来查询数据,但是sql的写法有限制写法只能是 sql语句1;sql语句2;sql语句3 ,查询结果也是mysql资源类型,如果要得到查询结果可以使用store_result()来分别获取每一组查询结果,之后用fetch_row或者其他函数获取数据行,之后遍历即可,每遍历完一组需要释放数据结果集。要判断是否还有数据可以使用next_result()来判断,千万要记得用more_results()来避免next_result()出现的异常,最后一步就是关闭数据库连接了。
代码如下:
<?php $mysqli=new mysqli("localhost", "root", "123456","student"); if($mysqli->connect_error){ die("数据库连接失败:".$mysqli->connect_error); } $sql="select * from m_student;"; $sql.="select * from m_user"; if($mysqli->multi_query($sql)){ do{ if($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 "****************************"; echo "</br>"; } }while($mysqli->next_result()); }else{ echo $mysqli->error(); } $mysqli->close();?>
来看看程序的运行结果
到这里批量处理数据就告一段落了
2.mysqli扩展库的事务处理
事务的特点我就不多说了总结起来就是原子性,隔离性,一致性,持久性,mysqli扩展库使用autocommit,commit,rollback来处理事务,在这之前先理解下保存点的问题。mysql数据库也和其他数据库一样,也可以创建保存点,回滚数据。下面是我对数据库事务的测试
下面自然就是代码的测试了,如下所示
<?php $mysqli=new mysqli("localhost", "root", "123456","student"); if($mysqli->connect_error){ die("数据库连接失败:".$mysqli->connect_error); } $mysqli->autocommit(false); $sql="update m_student set stuName='潘玮柏' where id=3"; $sql2="update m_student set stuName='苏有朋' where id=4"; $result1=$mysqli->query($sql); $result2=$mysqli->query($sql2); if(!$result1||!$result2){ echo $mysqli->error; $mysqli->rollback(); }else{ $mysqli->commit(); echo "操作成功"; } $mysqli->close();?>
- mysqli扩展库的批量操作和事务处理
- mysqli扩展库操作
- mysqli预处理和事务处理
- mysql扩展库和mysqli扩展库的比较
- 简单的MYSQLI事务处理
- 使用php的mysqli扩展库操作mysql数据库
- Mysqli扩展库的总结
- mysqli扩展 关于查询的操作
- mysqli扩展库增强-预处理mysqli_stmt批量输入
- mysqli扩展库增强-预处理mysqli_stmt 批量查询显示结果
- PHP的mysqli扩展介绍和使用
- mysqli扩展php的mysqli扩展
- 运用MySQLI扩展库的预处理功能...
- mysqli扩展库的预处理机制
- php mysqli扩展库的使用
- Php的mysqli扩展
- mysqli的扩展函数
- PHP的mysqli扩展
- [各种面试题] Excel数转换
- 关于VC弹出选择文件夹对话框
- OpenVPN DNS 设置
- 白话C#:特性
- 五绝.记2013年9月8日游蟒山俯瞰十三陵水库
- mysqli扩展库的批量操作和事务处理
- hadoop环境配置之配置hadoop文件
- WPS support in NM (client mode)
- 栈空间的理解
- emacs 配置
- hadoop环境配置之配置SSH
- 快速排序c语言原代码
- 防痴呆设计
- 【Bitmap】Canvas: trying to use a recycled bitmap android.graphics.Bitmap问题