MySQL 9.0 C API 开发人员指南  /  ...  /  NULL mysql_store_result() 返回值在 mysql_query() 成功后

3.6.9 NULL mysql_store_result() 返回值在 mysql_query() 成功后

对于 mysql_store_result() 来说,在成功调用服务器使用 mysql_real_query()mysql_query() 后返回 NULL 是可能的。当这种情况发生时,这意味着发生了以下条件之一

  • 发生了 malloc() 失败(例如,如果结果集太大)。

  • 无法读取数据(连接上发生错误)。

  • 查询没有返回任何数据(例如,它是一个 INSERTUPDATEDELETE)。

您始终可以通过调用 mysql_field_count() 来检查语句是否应该生成非空结果。如果 mysql_field_count() 返回零,则结果为空,最后一个查询是一个不返回值的语句(例如,INSERTDELETE)。如果 mysql_field_count() 返回非零值,则该语句应该生成非空结果。有关示例,请参阅 mysql_field_count() 函数的描述。

您可以通过调用 mysql_error()mysql_errno() 来测试错误。