我有一种情况,我正在使用 C api 对 LAMP 框上的表进行串行 SELECT 查询。第一个查询选择单个记录(订单标题)。然后,第二个查询使用从第一个查询返回的记录号来选择由订单标题记录号索引的行项目。第一个查询工作正常,第二个查询总是返回零行(通过检查 mysql_fetch_numrows() 或执行 mysql_fetchrow() 的 while 循环)。我在控制台上打印出 SQL,然后将其复制并粘贴到 MySQL 客户端中。它返回我在数据库中看到的预期 3 条记录。这使我得出结论,SQL 语句是正确的。
每次查询后我都会调用 mysql_free_result() 。由于我没有大量使用 C API 的经验,我想知道是否还有其他需要关闭或释放的东西。事件的顺序是:
mysql_init()
mysql_real_connect()
mysql_query()
mysql_store_result()
mysql_fetch_row()
mysql_free_result()
mysql_query()
mysql_store_result()
mysql_fetch_row() <--- fails, no error code, zero rows returned
所有这一切所涉及的唯一全局变量是连接句柄。