广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

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

    2018-06-01 14:45:57 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    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 ) );

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告