mySQL C API多个语句

时间:2011-05-08 23:59:07

标签: mysql c

所以我正在构建一个连接到mySQL数据库的C程序。一切都很完美。然后,为了节省查询数量,我决定一次执行10个语句。我在连接中设置了“CLIENT_MULTI_STATEMENTS”标志,并用分号分隔我的语句。

当我执行第一批10个语句时,它成功并且mysql_real_query()返回0.

当我尝试第二批时,它返回“1”并且不起作用。我无处可以找到这个“1”错误代码的含义,所以我希望有人可能会遇到这个问题。

请注意,这些都是UPDATE语句,因此我不需要结果集,只需要几次直接调用mysql_real_query()。

2 个答案:

答案 0 :(得分:2)

这些准备好的陈述?如果是这种情况,则无法使用CLIENT_MULTI_STATEMENTS。

另外,请注意(来自http://dev.mysql.com/doc/refman/5.5/en/c-api-multiple-queries.html):

  

处理后的结果   第一个声明,有必要   检查是否存在更多结果   如果是的话,依次处理它们。支持   多结果处理,C API   包括mysql_more_results()和   mysql_next_result()函数。这些   函数在a的末尾使用   循环,只要更多迭代   结果可用。没有   以这种方式处理结果可能会导致   在与服务器的连接中断。

无论您是否关心这些值,您都必须遍历所有结果。

答案 1 :(得分:2)

从文档中不清楚是否返回了此函数可能导致的错误,但是应该可以使用mysql_error()获取实际错误。

我的猜测是,无论你是否对它们感兴趣,你仍然必须遍历结果集。