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

时间:2024-01-12 20:03:23 

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,多条语句
0
投稿

猜你喜欢

  • 正在研究XMLHTTP如何正确传送大于7F(127)的二进制数据

    2008-09-13 18:41:00
  • Python实战之画哆啦A梦(超详细步骤)

    2021-05-16 14:36:47
  • python读取excel表格生成erlang数据

    2022-12-26 05:03:54
  • Pytorch 如何训练网络时调整学习率

    2022-01-31 20:08:48
  • 详解Mysql如何实现数据同步到Elasticsearch

    2024-01-23 04:39:57
  • mysql中查询字段为null的数据navicat问题

    2024-01-15 23:39:16
  • Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解

    2021-07-16 07:40:40
  • python使用递归的方式建立二叉树

    2021-07-07 23:47:18
  • Python如何用filter函数筛选数据

    2022-07-23 21:20:14
  • 实例讲解Python中的私有属性

    2023-11-10 16:41:46
  • pandas调整列的顺序以及添加列的实现

    2022-09-21 12:31:10
  • 浅谈python3.6的tkinter运行问题

    2021-08-04 01:29:16
  • 如何通过python实现人脸识别验证

    2021-10-30 18:52:56
  • Python 图像处理 Pillow 库详情

    2022-12-05 04:46:12
  • Python如何安装第三方模块

    2023-08-01 12:50:07
  • MYSQL 一个巧用字符函数做数据筛选的题

    2024-01-26 01:39:05
  • MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法

    2024-01-23 12:12:47
  • Mysql 5.6 "隐式转换"导致的索引失效和数据不准确的问题

    2024-01-22 04:07:47
  • 使用Docker部署ASP.NET Core程序

    2024-06-05 09:24:56
  • 试试把xml和javascript写到同一个文件里面

    2009-10-02 16:53:00
  • asp之家 网络编程 m.aspxhome.com