• 基本使用

$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语句的更多相关文章

  1. SQL*PLUS中批量执行SQL语句

    SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书) ...

  2. c#实现用SQL池(多线程),定时批量执行SQL语句 【转】

    在实际项目开发中,业务逻辑层的处理速度往往很快,特别是在开发Socket通信服务的时候,网络传输很快,但是一旦加上数据库操作,性能一落千丈,数据库操作的效率往往成为一个系统整体性能的瓶颈.面对这问题, ...

  3. PHP mysqli 增强 批量执行sql 语句的实现代码

    本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...

  4. c#实现用SQL池(多线程),定时批量执行SQL语句

    在实际项目开发中,业务逻辑层的处理速度往往很快,特别是在开发Socket通信服务的时候,网络传输很快,但是一旦加上数据库操作,性能一落千丈,数据库操作的效率往往成为一个系统整体性能的瓶颈.面对这问题, ...

  5. mysqli扩展库应用---批量执行sql语句

    1, mysqli批量执行sql语句.基本语法: $sqls=”sql1;sql2;………” mysqli::multi_query($sqls); 同一个$sqls要么是增删改语句集合,要么是查询语 ...

  6. JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句

    conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...

  7. Jmeter(三十八)Jmeter Question 之 ‘批量执行SQL语句’

    知识使我们变得玩世不恭,智慧使我们变得冷酷无情,我们思考的太多,感知太少,除了机器,我们更需要人性,除了智慧,我们需要仁慈和善良. ------出自查理卓别林的演讲 前面有提到Jmeter使用JDBC ...

  8. executeBatch()批量执行Sql语句

    executeBatch()方法:用于成批地执行SQL语句,但不能执行返回值是ResultSet结果集的SQL语句,而是直接执行stmt.executeBatch(); addBatch():向批处理 ...

  9. 批量执行SQL语句,进行删除,插入或者更改。

    private bool ExecuteTransaction(List<string> list) { using (SqlConnection connection = new Sql ...

随机推荐

  1. windows 文件名太长无法删除的解决方法

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. Count属性(行数 @)

    在PS2.0中,如果返回值为空,则count也会返回空(vm.txt内容为空),如下: (gc d:\vm.txt).count 如果加上@的话,会返回0 @(gc d:\vm.txt).count ...

  3. java09 队列Queue与Deque

    队列Queue与Deque. Enumeration Hashtable与Hashtable子类Properties(资源配置文件) 引用类型(强.软.弱.虚)与WeakHashMap Identit ...

  4. 快速高效的破解MySQL本地和远程密码

    http://www.kankanews.com/ICkengine/archives/212.shtml 快速的 MySQL 本地和远程密码破解!首先需要对数据库维护人员说明的是,不必紧张,你无需修 ...

  5. SqlBulkCopy高效能批量插入SQL SERVER

    what SqlBulkCopy是.NET提供的用来批量插入数据的一个类,特别是将内存中的数据一次性插入到数据库,目前只能插入到SQL SERVER数据库,数据源可以是DataTable.IDataR ...

  6. Linux软连接和硬链接(摘录)

    1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...

  7. Ubuntu16.04/windows7修改本地hosts文件

    1. 从github上下载最新的hosts文件:https://serve.netsh.org/pub/ipv4-hosts/ ubuntu16.04: 第二步:Ctrl+Alt+T 打开ubuntu ...

  8. oracle数据库入门sql语句

    数据库: 命名规范问题 依然是 _流.看来也确实应该抽空 来处理一下 今天吧,不行时间不能浪费.要更加专注.累了 就睡,醒来 就 好好 弄东西.白天 哪怕累一些,强度 大一些,晚上也可以抽空出去.溜溜 ...

  9. 初识hibernate

    //针对myEclipse2014版本 怎样新建一个工程实现这些东西的导入. 打开myeclipse. 2.点击右上角的open perspective 找到这个 MyEclipse Database ...

  10. Struts---- <s:bean>标签

    近几天学习的都是跟struts有关的.详细写<s:bean>标签 具体内容为: 一.准备工作 1.新建Web工程 2.添加struts:右键点击工程名选择My Eclipse-->点 ...