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

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

在使用 mysql_real_query()mysql_query() 成功调用服务器后,mysql_store_result() 可能返回 NULL。出现这种情况表示发生了以下情况之一:

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

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

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

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

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