6.4.28 mysql_stmt_store_result()

int
mysql_stmt_store_result(MYSQL_STMT *stmt)

描述

结果集是通过调用 mysql_stmt_execute()执行的 SQL 语句的准备语句生成的,例如 SELECTSHOWDESCRIBEEXPLAIN。默认情况下,成功执行的预处理语句的结果集不会在客户端进行缓冲,而是 mysql_stmt_fetch()一次从服务器获取一个结果集。要在客户端缓冲完整的结果集,请 mysql_stmt_store_result() 在绑定数据缓冲区之后 和调用以获取行mysql_stmt_bind_result()之前调用 。mysql_stmt_fetch()(例如,参见 第 6.4.11 节,“mysql_stmt_fetch()”。)

mysql_stmt_store_result()对于结果集处理是可选的,除非您将调用 mysql_stmt_data_seek()mysql_stmt_row_seek()mysql_stmt_row_tell()。这些函数需要一个可查找的结果集。

mysql_stmt_store_result() 在执行不产生结果集的 SQL 语句后 没有必要调用 ,但如果这样做,它不会损害或导致任何显着的性能问题。您可以通过检查是否 mysql_stmt_result_metadata() 返回来检测该语句是否产生了结果集NULL。有关详细信息,请参阅第 6.4.23 节,“mysql_stmt_result_metadata()”

笔记

默认情况下,MySQL 不会计算 MYSQL_FIELD->max_length所有列, mysql_stmt_store_result() 因为计算速度会大大降低, mysql_stmt_store_result() 而大多数应用程序不需要 max_length。如果你想 max_length更新,你可以调用 mysql_stmt_attr_set(MYSQL_STMT, STMT_ATTR_UPDATE_MAX_LENGTH, &flag)启用它。参见第 6.4.3 节,“mysql_stmt_attr_set()”

返回值

零成功。如果发生错误,则非零。

错误