mysql_res * mysql_store_result(mysql * mysql)
mysql_store_result()
是一个同步功能。它的异步对应物是mysql_store_result_nonblocking()
,用于使用与服务器异步通信的应用程序使用。看第七章,C API异步接口。
调用后mysql_query()
或者mysql_real_query()
,你必须打电话mysql_store_result()
或者mysql_use_result()
对于成功生成结果集的每个语句(选择
那表演
那描述
那解释
那检查表
等等)。你还必须打电话mysql_free_result()
使用结果集完成后。
你不需要打电话mysql_store_result()
或者mysql_use_result()
对于其他陈述,但如果您呼唤,它不会造成任何伤害或导致任何显着的性能下降mysql_store_result()
在所有情况下。您可以通过检查是否具有结果来检测语句是否具有结果集mysql_store_result()
返回非零值(稍后有关此内容)。
如果启用多语句支持,则应检索呼叫的结果mysql_query()
或者mysql_real_query()
通过使用呼叫的循环mysql_next_result()
确定是否有更多结果。例如,看到第3.6.2节“多声明执行支持”。
确定语句是否返回结果集,调用mysql_field_count()
。看第5.4.23节“MySQL_FIELD_COUNT()”。
mysql_store_result()
读取对客户端查询的整个结果,分配amysql_res.
结构,并将结果放入这种结构中。
mysql_store_result()
回报空值
如果语句没有返回结果集(例如,如果是插
语句)或发生错误和读取结果集失败。
如果没有返回的行,则返回一个空结果集。(空结果集与空指针与返回值的不同之处不同。)
你打电话后mysql_store_result()
并返回一个不是空指针的结果,你可以打电话mysql_num_rows()
找出结果集中的行数。
你可以打电话mysql_fetch_row()
从结果集获取行,或mysql_row_seek()
和mysql_row_tell()
要在结果集中获取或设置当前行位置。
指向一个指针mysql_res.
结果结构具有结果。空值
如果语句没有返回结果集或发生错误。要确定是否发生错误,请检查是否mysql_error()
返回一个非空字符串,mysql_errno()
返回非零,或mysql_field_count()
返回零。
mysql_store_result()
重置mysql_error()
和mysql_errno()
如果成功。
命令以不正当的顺序执行。
内存不足。
MySQL Server已经消失了。
查询期间与服务器的连接丢失。
出现未知错误。