加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql应用MySQL 一次执行多条语句的实现及常见问题

发布时间:2020-12-12 01:07:17 所属栏目:MySql教程 来源:网络整理
导读:《Mysql应用MySQL 一次执行多条语句的实现及常见问题》要点: 本文介绍了Mysql应用MySQL 一次执行多条语句的实现及常见问题,希望对您有用。如果有疑问,可以联系我们。 MySQL是支持在单个查询字符串中指定多语句执行的,使用方法是给链接指定参数: 代码如下

《Mysql应用MySQL 一次执行多条语句的实现及常见问题》要点:
本文介绍了Mysql应用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 queryn" );
????????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 ) );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读