C mysql (C API Commands out of sync; you can't run this command now)

错误出现在当一个用户使用查询,另一个用户再使用此sql连接进行查询的时候;

原因是因为上一次使用此sql连接进行查询时没有将所有的结果集给释放掉,在所有使用此sql连接进行查询的地方将所有的结果集给释放掉,正确的做法如下

    MYSQL_RES    *result_ptr = mysql_store_result(tpSqlConn);
    if (result_ptr)
    {
        MYSQL_ROW    row = mysql_fetch_row(result_ptr);
        if (row)
        {
            rtn_str = row[0];
        }

        mysql_free_result(result_ptr);

        // 释放当前查询的所有结果集. 否则下次查询将会出错.
        while (!mysql_next_result(tpSqlConn))
        {
            result_ptr = mysql_store_result(tpSqlConn);
            mysql_free_result(result_ptr);
        }
    }
原文地址:https://www.cnblogs.com/emyueguang/p/3622803.html