批量执行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 ...
随机推荐
- 杀死当前Excel进程
说明: 代码编写过程中,有时需要杀死当前Excel进程,而不影响其他Excel进程. 代码如下: 添加引用: //杀死当前进程的API引用 using System.Runtime.InteropSe ...
- cocos2d-x 绘制基本图元
转自:http://4137613.blog.51cto.com/4127613/754729 第一部分:基本图形绘制 cocos2dx封装了大量opengl函数,用于快速绘制基本图形,这些代码的 ...
- 基于 OAuth 安全协议的 Java 应用编程1
原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-oauth/index.html 參考博客:http://www.cnblogs.com/wan ...
- DELPHI TDownLoadURL下载网络文件
DELPHI XE6 FMX 附件:http://files.cnblogs.com/xe2011/IDHttp_fmx.7z unit Unit1; interface uses //引用 Vc ...
- 【LeetCode】Agorithms 题集(一)
Single Number 题目 Given an array of integers, every element appears twice except for one. Find that s ...
- Caused by: java.lang.NoClassDefFoundError: freemarker/cache/TemplateLoader
1.错误描写叙述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -he ...
- JavaScript实现竖直文本滚动
一.HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- 为一张PCI卡打通经络的过程
一张PCI卡通过“一转二”的转接卡插在主板上,probe调用失败,日志显示读取配置空间的时候发生了奇偶校验错误,可是使用相同的转接卡把它插在另外一台相同机器的主板上时,却运行正常,这就说明不是转接卡的 ...
- android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检索
我们的手机通讯录一般都有这样的效果,如下图: OK,这种效果大家都见得多了,基本上所有的android手机通讯录都有这样的效果.那我们今天就来看看这个效果该怎么实现. 一.概述 1.页面功能分析 整体 ...
- IEnumerable 和 IQueryable
共有两组 LINQ 标准查询运算符,一组在类型为 IEnumerable<T> 的对象上运行,另一组在类型为 IQueryable<T> 的对象上运行.构成每组运算符的方法分别 ...