如何在没有mysql_free_result(res)的情况下在c中运行查询

如何在没有mysql_free_result(res)的情况下在c中运行查询,mysql,c,c-api,Mysql,C,C Api,我得到的命令不同步;现在无法运行此命令错误正确的语句是: while ((row = mysql_fetch_row(res)) != NULL) { sprintf(statement, "DELETE FROM `outgoing` WHERE `outgoing`.`id`=%s", row[0]); if (mysql_query(conn, statement)) { fprintf(stderr, "%s\n", mysql_error(conn)

我得到的命令不同步;现在无法运行此命令错误

正确的语句是:

while ((row = mysql_fetch_row(res)) != NULL) {

    sprintf(statement, "DELETE FROM `outgoing` WHERE `outgoing`.`id`=%s", row[0]);

    if (mysql_query(conn, statement)) {
        fprintf(stderr, "%s\n", mysql_error(conn));    
    }
}
请注意%s周围的正确引号,并注意其他内容不需要引号,因为它们是名称,而不是值。

您可能使用函数从MySQL数据库获取结果。在这种情况下,当调用mysql\u fetch\u row时,行被逐个发送到客户端。在提取所有行之前,将锁定数据库句柄:

使用mysql\u use\u result时,必须执行mysql\u fetch\u行 除非返回空值,否则,将保留未蚀刻的行 作为下一个查询的结果集的一部分返回。C API 使错误命令不同步;现在无法运行此命令 如果你忘了做这个


作为替代品。该函数一次获取所有行。

您的单引号不是正确的单引号。它必须是'。请发布更多代码,特别是显示第一个mysql\u查询。这是第一个查询==>mysql\u queryconn,从传出中选择*,其中状态='1'限制为0,10;请编辑您的问题,并包括所有相关的代码。我需要运行两个查询,一个是在内部,而loopSo?只需在循环中运行query和sprintf语句。我不知道您正在获取什么,但可能需要在您的行[0]中寻址一个字段。如果从要删除的同一个表中提取,则查询可能会相互干扰。无论如何,上述说法是正确的。显示更多的代码,让我们更详细地理解错误。我需要在其中运行另一个查询,而没有其他查询
sprintf(statement, "DELETE FROM outgoing WHERE outgoing.id='%s'", row[0]);