http://dev.mysql.com/doc/refman/5.0/en/c-api-multiple-queries.html参考:
http://sswin0922.blog.163.com/blog/static/95115415201002554341619/加上CLIENT_MULTI_STATEMENTS 试试

解决方案 »

  1.   

    加了CLIENT_MULTI_STATEMENTS并且也加了CLIENT_MULTI_RESULTS,你发的链接我看过哦,就是一个循环,奇怪的是我这样写还是同样的问题,store_result还是返回null,我再看看
      

  2.   

      if (mysql_query(&m, "call checkinfo(1, @a)")) {
            printf("real_query failed\n");
            printf("%s\n", mysql_error(&m));
            mysql_close(&m);
            exit(1);
        }
        
        MYSQL_RES *res= mysql_store_result(&m);
        MYSQL_ROW row;
        while ((row = mysql_fetch_row(res))) {
            printf("id is %d, name is %s\n", atoi(row[0]), row[1]);
        }
        mysql_free_result(res);
        
        if (mysql_next_result(&m)) {
            printf("next failed\n");
            printf("%s\n", mysql_error(&m));
            mysql_close(&m);
            exit(1);
        }
        if (mysql_query(&m, "select @a")) {
            printf("query failed\n");
            printf("%s\n", mysql_error(&m));
            mysql_close(&m);
            exit(1);
        }
      

  3.   

    sprintf(szQuery, "call get_student_age('%s',@userAge);select @userAge;", szUserName);
      

  4.   

    这种方法是可以,但我程序不能这么用,我调试了下,确实是在mysql_next_result(conn);返回0的时候,再调用mysql_store_result返回了null,然后我再query一次并storeresult才能拿到输出参数的值,应该就是库或这mysql的一个bug
      

  5.   

    楼主,我也遇到同样的问题 请问你是怎么解决的啊。
    mysql_next 确实返回0了,但是下次调用store出来确实为空,再次next才返回-1