批量执行sql语句
- 基本使用
 
$sqls="sql语句1;sql语句2;sql语句n";
或 $sqls="insert into xx;"; $sqls.="insert into xx;";
$res=mysqli::multi_query($sqls);
如果$sqls 是dml 语句,则$res 返回布尔值;
如果$sqls 是dql 语句,则$res 返回多个结果集,需要使用mysqli::store_result()
和 mysqli::more_results() mysqli::next_result() 配合取出各个结果集
- 批量执行dml语句(insert、update、delete语句可以混合拼接)
 
<?php
//连接数据库
$mysqli=new MySQLi("localhost","root","root","test");
//判断是否连接成功
if($mysqli->connect_error){
die("连接失败".$mysqli->connect_error);
}
//拼接sql语句,注意-->双引号里的分号不可少!!!
$sqls="insert into user1 (name,password,age,birthday) values ('wpp',md5('wpp'),25,'1991-05-05');";
$sqls.="insert into user1 (name,password,age,birthday) values ('zs',md5('zs'),26,'1990-01-01');";
$sqls.="insert into user1 (name,password,age,birthday) values ('ls',md5('ls'),26,'1990-02-01');";
//批量执行dml语句
$res=$mysqli->multi_query($sqls);
//判断执行结果
if(!$res){
echo "操作失败";
}else{
echo "操作成功";
}
//关闭连接
$mysqli->close();
?>
- 查询user1 表的结构和表的内容并显示
 
<?php
//连接数据库
$mysqli=new MySQLi("localhost","root","root","test");
//判断是否连接成功
if($mysqli->connect_error){
die("连接失败".$mysqli->connect_error);
}
//拼接sql语句,注意-->双引号里的分号不可少!!!
$sqls="desc user1;";
$sqls.="select * from user1";
//批量执行dql语句
$res=$mysqli->multi_query($sqls) or die("操作失败".$mysqli->error);
//处理执行结果
do{
echo"<br/>-----结果如下-----<br/>";
//取出第一个结果集
$result=$mysqli->store_result();
//显示结果
while($row=$result->fetch_row()){
foreach($row as $key=>$val){
echo "--".$val;
}
echo "<br/>";
}
//及时释放结果集
$result->free();
}while($mysqli->more_results()&&$mysqli->next_result());
//关闭连接
$mysqli->close();
?>
结果如下:

- 查询user1 表的结构和表的内容并用表格显示在网页
 
<?php
//批量执行sql语句(dql),以表格形式显示在网页
//连接数据库
$mysqli=new MySQLi("localhost","root","root","test");
//判断是否连接成功
if($mysqli->connect_error){
die("连接失败".$mysqli->connect_error);
}
//拼接sql语句,注意-->双引号里的分号不可少!!!
$sqls="desc user1;";
$sqls.="select * from user1";
//批量执行dql语句
$res=$mysqli->multi_query($sqls) or die("操作失败".$mysqli->error);
//处理执行结果
do{
echo"<br/>-----结果如下-----<br/>";
//取出第一个结果集
$result=$mysqli->store_result();
echo "<table border=1 cellspacing=0 cellpadding=3px><tr>";
//显示表头和表的第一行内容
$fieldName=$result->fetch_assoc();
foreach($fieldName as $key=>$val){
echo "<th>$key</th>";
}
echo "</tr><tr>";
foreach($fieldName as $key=>$val){
echo "<td>$val</td>";
}
echo "</tr>";
//显示表的第二行以后的内容
while($row=$result->fetch_row()){
echo "<tr>";
foreach($row as $key=>$val){
echo "<td>$val</td>";
}
echo "</tr>";
}
echo "</table>";
//及时释放结果集
$result->free();
}while($mysqli->more_results()&&$mysqli->next_result());
//关闭连接
$mysqli->close();
?>
结果如下:

批量执行sql语句的更多相关文章
- SQL*PLUS中批量执行SQL语句
		
SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书) ...
 - c#实现用SQL池(多线程),定时批量执行SQL语句 【转】
		
在实际项目开发中,业务逻辑层的处理速度往往很快,特别是在开发Socket通信服务的时候,网络传输很快,但是一旦加上数据库操作,性能一落千丈,数据库操作的效率往往成为一个系统整体性能的瓶颈.面对这问题, ...
 - PHP mysqli 增强 批量执行sql 语句的实现代码
		
本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...
 - c#实现用SQL池(多线程),定时批量执行SQL语句
		
在实际项目开发中,业务逻辑层的处理速度往往很快,特别是在开发Socket通信服务的时候,网络传输很快,但是一旦加上数据库操作,性能一落千丈,数据库操作的效率往往成为一个系统整体性能的瓶颈.面对这问题, ...
 - mysqli扩展库应用---批量执行sql语句
		
1, mysqli批量执行sql语句.基本语法: $sqls=”sql1;sql2;………” mysqli::multi_query($sqls); 同一个$sqls要么是增删改语句集合,要么是查询语 ...
 - JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句
		
conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...
 - Jmeter(三十八)Jmeter Question 之 ‘批量执行SQL语句’
		
知识使我们变得玩世不恭,智慧使我们变得冷酷无情,我们思考的太多,感知太少,除了机器,我们更需要人性,除了智慧,我们需要仁慈和善良. ------出自查理卓别林的演讲 前面有提到Jmeter使用JDBC ...
 - executeBatch()批量执行Sql语句
		
executeBatch()方法:用于成批地执行SQL语句,但不能执行返回值是ResultSet结果集的SQL语句,而是直接执行stmt.executeBatch(); addBatch():向批处理 ...
 - 批量执行SQL语句,进行删除,插入或者更改。
		
private bool ExecuteTransaction(List<string> list) { using (SqlConnection connection = new Sql ...
 
随机推荐
- CopyU!SW新版发布!
			
CopyU!SW新版发布,版本号为:2.1.412.213 主要更新内容如下: 此版本(2.1.412.213)主要作了如下更新: 1.修复了CopyU!SW版本中的运行模式规则的设定错 ...
 - eclipse mybatis Generator
			
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
 - cmd 控制台 提示:请求的操作须要提升!
			
cmd 控制台 提示:请求的操作须要提升! 在windows7中想用route add 或相关route等命令须要以管理员身份执行,假设windows7以下没有以管理身份执行那么加入路由时候route ...
 - @RenderBody()和@RenderSection()
			
强大的Razor引擎 一.Razor基础简介 Razor采用了cshtml后缀的文件名,截图如下: A. 版面布局 从图上看到,新的视图引擎已经没有了Site.Master这种MasterPage了, ...
 - Android将应用log信息保存文件
			
相信大家在做应用调试的时候,不可能时时通过USB线连着电脑去查看log信息,所以,将应用的log信息保存到手机本地就很有必要了,有助我们从这些log信息中提取有用的部分,以解决一些bug,下面我把网上 ...
 - linux shell read command-Getting User Input Via Keyboard--ref
			
ref:http://bash.cyberciti.biz/guide/Getting_User_Input_Via_Keyboard You can accept input from the ke ...
 - linux atime ctime mtime
			
touch testtime 1. stat testtime[为文件名] 可以查看这个文件名的三者状态 2.ll testtime;ll --time=atime testtime ;ll --ti ...
 - 从 setNeedsLayout 说起
			
本文从 setNeedsLayout 这个方法说起,分享与其相关的 UIKit 视图交互.使用场景等内容. UIKit 为 UIView 提供了这些方法来进行视图的更新与重绘: public func ...
 - StringBuffer与StringBuilder之间的区别
			
public class Test { public static void main(String[] args) { StringBuffer strBuffer = new StringBuff ...
 - spring mvc 3.1的自动注入参数遇到的问题
			
在网上下载了xheditor作为页面的编辑器,编辑内容后post到后台保存,后台方法用spring mvc的自动注入的方式接收参数. 这种方式在各个浏览器下运行良好,但是在ie11下发现,从word. ...