MySQL 一次执行多条语句的实现及常见问题
MySQL是支持在单个查询字符串中指定多语句执行的,使用方法是给链接指定参数:
代码如下:
//链接时设定
mysql_real_connect( ..., CLIENT_MULTI_STATEMENTS );
//或者
//中途指定
mysql_set_server_option( mysql, MYSQL_OPTION_MULTI_STATEMENTS_ON ); //mysql是连接的名称
当使用执行多语句功能后,一定要读完整个resault集,否则会出现错误:Commands out of sync; you can't run this command now
官方推荐的执行语句是这样的:
代码如下:
do
{
/* Process all results */
...
printf( "total affected rows: %lld", mysql_affected_rows( mysql ) );
...
if( !( result mysql_store_result( mysql ) ) )
{
printf( stderr, "Got fatal error processing query\n" );
exit(1);
}
process_result_set(result); /* client function */
mysql_free_result(result);
}while( !mysql_next_result( mysql ) );
如果仅仅是插入等不需要返回值的SQL语句,也一样得读完整个resault集并释放,最小化的写法:
代码如下:
do
{
result = mysql_store_result( mysql );
mysql_free_result(result);
}while( !mysql_next_result( mysql ) );
相关推荐
-
MySQL 一次执行多条语句的实现及常见问题
MySQL是支持在单个查询字符串中指定多语句执行的,使用方法是给链接指定参数: 复制代码 代码如下: //链接时设定 mysql_real_connect( ..., CLIENT_MULTI_STATEMENTS ); //或者 //中途指定 mysql_set_server_option( mysql, MYSQL_OPTION_MULTI_STATEMENTS_ON ); //mysql是连接的名称 当使用执行多语句功能后,一定要读完整个resault集,否则会出现错误:Commands
-
PHP实现mysqli批量执行多条语句的方法示例
本文实例讲述了PHP实现mysqli批量执行多条语句的方法.分享给大家供大家参考,具体如下: 可以一次性的执行多个操作或取回多个结果集. 实例: <?php $mysqli = new mysqli("localhost", "root", "111111", "test"); /* check connection */ if (mysqli_connect_errno()) { printf("Connec
-
sql和MySQL的语句执行顺序分析
今天遇到一个问题就是mysql中insert into 和update以及delete语句中能使用as别名吗?目前还在查看,但是在查阅资料时发现了一些有益的知识,给大家分享一下,就是关于sql以及MySQL语句执行顺序: sql和mysql执行顺序,发现内部机制是一样的.最大区别是在别名的引用上. 一.sql执行顺序 (1)from (2) on (3) join (4) where (5)group by(开始使用select中的别名,后面的语句中都可以使用) (6) avg,sum....
-
Mac上将brew安装的MySql改用Docker执行操作过程
docker是最近大热的技术,堪称技术界的网红.本着技术人折腾的本性,尝试将本地的MySql服务器改成用docker执行,本文记录折腾过程,以作备忘. 步骤如下: 1:安装docker 自己找文档去 2:使用mysql官方发布的docker image,命令如下 docker pull mysql/mysql-server:5.7.16 ##(这是本文发布时候MySql最新稳定版,并且最好和本地的Mysql版本一致,否则第三步可能会有问题.) 因为GFW的缘故,这个过程有点漫长.命令执行完之后,
-
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
本文实例讲述了php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率.分享给大家供大家参考,具体如下: <?php /** * 测试pdo和mysqli的执行效率 */ header("Content-type:text/html;charset=utf-8"); //通过pdo链接数据库 $pdo_startTime = microtime(true); $pdo = new PDO("mysql:host=localhost;dbname=test&
-
docker mysql启动时执行初始化sql
1.拉取Mysql镜像 docker pull mysql:5.7 2.检查mysql镜像 docker inspect mysql:5.7 "Entrypoint": [ "docker-entrypoint.sh" ], 3.本地创建mysql外挂的目录 ##挂载到容器内/docker-entrypoint-initdb.d:MySQL启动时将执行 01_create_database.sql /root/mysql-5.7/init-data 01_creat
-
论一条select语句在MySQL是怎样执行的
目录 一.从宏观的角度分析MySQL 二.一条SQL执行要经过多少困难? 2-1 连接器 2-2 查询缓存 2-3 分析器 2-4 优化器 2-5 执行器 一.从宏观的角度分析MySQL 首先看一张经典图片(MySQL逻辑架构图) 上图的客户端可以直接理解为PHP.Java等.接下来,你会看到连接.线程处理.这一部分并不是MySQL所特有的,而且大多数客户端.服务器都具有类似的结构. 因此,一般而言,MySQL可以分为两层:Server层和存储引擎层. Server层主要包括连接层.查询缓存.分
-
MySQL中count(*)执行慢的解决方案
目录 一. count(*) 的实现方式 1.实现方式比较 2.为什么InnoDB不像MyISAM一样,也把数字存起来 3.小结 二.计数方法 1.用缓存系统保存计数 2.在数据库保存计数 三.不同的 count 用法 1. count(主键 id) 2.count(1) 3.count(字段) 4.count(*) 前言: 在开发工作中,经常需要计算一个表的行数,比如一个内容系统审核记录总数.这时候我们最先想到是一条 select count(*) from my_table;语句.但是,随着
-
使用MySQL的Explain执行计划的方法(SQL性能调优)
目录 前言 1. explain的使用 2. explain字段详解 id列 select_type列 table列 partitions列 type列 system const eq_ref ref ref_or_null index_merge range index ALL possible_keys列 key列 key_len列 ref列 rows列 filtered列 Extra列 Using where Using index Using filesort Using tempora
-
了解MySQL查询语句执行过程(5大组件)
目录 开篇 查询请求的执行流程 MySQL组件定义 连接器 查询缓存 分析器 优化器 逻辑变换 代价优化 执行器 总结 开篇 相信广大程序员朋友经常使用MySQL数据库作为书籍持久化的工具,我们最常使用的就是MySQL中的SQL语句,从客户端向MySQL发出一条条指令,然后获取返回的数据结果进行后面的逻辑处理.尽管大家经常使用SQL语句完成工作,你是否关注过其执行的阶段,利用了哪些技术完成?今天,就带大家一起看看MySQL数据库处理SQL请求的全过程.下面将会讲述如下内容: 查询请求在MySQL
随机推荐
- 基于Flowplayer打造一款免费的WEB视频播放器附源码
- 如何在网页中显示服务器时间
- Do All in Cmd Shell一切在命令行下完成第1/6页
- MySQL的LEFT JOIN表连接的进阶学习教程
- JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
- 用Shutdown命令实现网络统一关机
- Trojan.DL.VBS.Agent.cpb(k[1].js)脚本病毒的解决方法
- java程序运行时内存分配详解
- iOS中Block的回调使用和解析详解
- iOS应用开发中矢量图的使用及修改矢量图颜色的方法
- JS实现的表格操作类详解(添加,删除,排序,上移,下移)
- js实现4个方向滚动的球
- 朴素贝叶斯算法的python实现方法
- python遍历类中所有成员的方法
- MySQL的查询计划中ken_len的值计算方法
- 利用NPM淘宝的node.js镜像加速nvm
- 一个用了统计CPU 内存 硬盘 使用率的shell脚本
- 微信小程序首页数据初始化失败的解决方法
- 浅析SQL数据操作语句
- JS获取本周周一,周末及获取任意时间的周一周末功能示例