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
随机推荐
- javascript 密码框防止用户粘贴和复制的实现代码
- JQuery解析XML的方法小结
- .Net Core实现图片文件上传下载功能
- 100个不能错过的实用JS自定义函数
- 浅谈Javascript事件对象
- php中二维数组排序问题方法详解
- 浅谈php处理后端&接口访问超时的解决方法
- Android布局之LinearLayout线性布局
- Android开发之ListView实现Item局部刷新
- jQuery实用技巧必备(上)
- jQuery+formdata实现上传进度特效遇到的问题
- javascript适合移动端的日期时间拾取器
- 详解Java从后台重定向(redirect)到另一个项目的方法
- Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
- 构建简单的Webmail系统
- CentOS 6.5 环境实现本地局域网搭建YUM的方法【基于FTP】
- vuex如何重置所有state(可定制)
- Laravel框架验证码类用法实例分析
- 使用layui定义一个模块并使用的例子
- python实时监控cpu小工具