Spec-Zone .ru
спецификации, руководства, описания, API
|
int mysql_stmt_store_result(MYSQL_STMT *stmt)
Result sets are produced by calling mysql_stmt_execute()
to executed prepared statements for SQL statements such as SELECT
, SHOW
,
DESCRIBE
, and EXPLAIN
. By default, result sets for successfully executed prepared
statements are not buffered on the client and mysql_stmt_fetch()
fetches them one at a time from the server. To cause the complete result set to be buffered on the client, call
mysql_stmt_store_result()
after binding data buffers with mysql_stmt_bind_result()
and before calling mysql_stmt_fetch()
to fetch rows. (For an example, see Section 22.8.11.11, "mysql_stmt_fetch()
".)
mysql_stmt_store_result()
is
optional for result set processing, unless you will call mysql_stmt_data_seek()
, mysql_stmt_row_seek()
, or mysql_stmt_row_tell()
. Those functions require a seekable result set.
It is unnecessary to call mysql_stmt_store_result()
after executing an SQL statement that does not produce a result set, but if you do, it does not harm or cause
any notable performance problem. You can detect whether the statement produced a result set by checking if mysql_stmt_result_metadata()
returns NULL
. For
more information, refer to Section 22.8.11.23, "mysql_stmt_result_metadata()
".
MySQL doesn't by default calculate MYSQL_FIELD->max_length
for all
columns in mysql_stmt_store_result()
because calculating this would slow down mysql_stmt_store_result()
considerably and most applications don't need max_length
. If you want max_length
to be updated, you can call mysql_stmt_attr_set(MYSQL_STMT, STMT_ATTR_UPDATE_MAX_LENGTH, &flag)
to enable this. See Section 22.8.11.3, "mysql_stmt_attr_set()
".
Zero if the results are buffered successfully. Nonzero if an error occurred.
Commands were executed in an improper order.
Out of memory.
The MySQL server has gone away.
The connection to the server was lost during the query.
An unknown error occurred.