MYSQL_RES *
mysql_store_result(MYSQL *mysql)
调用
mysql_real_query()
or
之后mysql_query()
,您必须
为每个成功生成结果集的语句调用 or (mysql_store_result()
,
,
,
,
等等
)。您还必须在完成结果集后
调用
。mysql_use_result()
SELECT
SHOW
DESCRIBE
EXPLAIN
CHECK TABLE
mysql_free_result()
您不需要调用
mysql_store_result()
or
其他语句,但如果您在所有情况下mysql_use_result()
都调用,它不会造成任何伤害或导致任何显着的性能下降
。mysql_store_result()
您可以通过检查是否
mysql_store_result()
返回非零值来检测该语句是否具有结果集(稍后会详细介绍)。
如果您启用多语句支持,您应该从调用
mysql_real_query()
或
mysql_query()
通过使用循环来检索结果,该循环调用mysql_next_result()
以确定是否有更多结果。有关示例,请参阅第 3.6.2 节,“多语句执行支持”。
要确定语句是否返回结果集,请调用
mysql_field_count()
。参见
第 5.4.22 节,“mysql_field_count()”。
mysql_store_result()
向客户端读取查询的整个结果,分配一个
MYSQL_RES
结构,并将结果放入该结构中。
mysql_store_result()
NULL
如果语句没有返回结果集(例如,如果它是一条
语句
INSERT
),或者发生错误并且读取结果集失败,则返回。
如果没有返回行,则返回空结果集。(空结果集不同于作为返回值的空指针。)
在您调用
mysql_store_result()
并返回一个非空指针的结果后,您可以调用
mysql_num_rows()
以查明结果集中有多少行。
您可以调用mysql_fetch_row()
以从结果集中获取行,或者
调用mysql_row_seek()
并
mysql_row_tell()
获取或设置结果集中的当前行位置。
参见第 3.6.7 节,“mysql_query() 成功后返回 NULL mysql_store_result()”。
指向带有结果的MYSQL_RES
结果结构的指针。NULL
如果该语句未返回结果集或发生错误。要确定是否发生错误,请检查是否
mysql_error()
返回非空字符串、mysql_errno()
返回非零值或
mysql_field_count()
返回零值。
mysql_store_result()
重置
mysql_error()
,
mysql_errno()
如果成功。
-
命令的执行顺序不正确。
-
记不清。
-
MySQL 服务器已经消失。
-
查询期间与服务器的连接丢失。
-
出现未知错误。