DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(mysql.info.gz) mysql_use_result

Info Catalog (mysql.info.gz) mysql_thread_id (mysql.info.gz) C API functions (mysql.info.gz) mysql_warning_count
 
 22.2.3.60 `mysql_use_result()'
 ..............................
 
 `MYSQL_RES *mysql_use_result(MYSQL *mysql)'
 
 Description
 ...........
 
 You must call `mysql_store_result()' or `mysql_use_result()' for every
 query that successfully retrieves data (`SELECT', `SHOW', `DESCRIBE',
 `EXPLAIN').
 
 `mysql_use_result()' initiates a result set retrieval but does not
 actually read the result set into the client like `mysql_store_result()'
 does.  Instead, each row must be retrieved individually by making calls
 to `mysql_fetch_row()'.  This reads the result of a query directly from
 the server without storing it in a temporary table or local buffer,
 which is somewhat faster and uses much less memory than
 `mysql_store_result()'.  The client will allocate memory only for the
 current row and a communication buffer that may grow up to
 `max_allowed_packet' bytes.
 
 On the other hand, you shouldn't use `mysql_use_result()' if you are
 doing a lot of processing for each row on the client side, or if the
 output is sent to a screen on which the user may type a `^S' (stop
 scroll).  This will tie up the server and prevent other threads from
 updating any tables from which the data is being fetched.
 
 When using `mysql_use_result()', you must execute `mysql_fetch_row()'
 until a `NULL' value is returned, otherwise, the unfetched rows will be
 returned as part of the result set for your next query. The C API will
 give the error `Commands out of sync; you can't run this command now'
 if you forget to do this!
 
 You may not use `mysql_data_seek()', `mysql_row_seek()',
 `mysql_row_tell()', `mysql_num_rows()', or `mysql_affected_rows()' with
 a result returned from `mysql_use_result()', nor may you issue other
 queries until the `mysql_use_result()' has finished.  (However, after
 you have fetched all the rows, `mysql_num_rows()' will accurately
 return the number of rows fetched.)
 
 You must call `mysql_free_result()' once you are done with the result
 set.
 
 Return Values
 .............
 
 A `MYSQL_RES' result structure. `NULL' if an error occurred.
 
 Errors
 ......
 
 `mysql_use_result()' resets `mysql_error()' and `mysql_errno()' if it
 succeeds.
 
 `CR_COMMANDS_OUT_OF_SYNC'
      Commands were executed in an improper order.
 
 `CR_OUT_OF_MEMORY'
      Out of memory.
 
 `CR_SERVER_GONE_ERROR'
      The MySQL server has gone away.
 
 `CR_SERVER_LOST'
      The connection to the server was lost during the query.
 
 `CR_UNKNOWN_ERROR'
      An unknown error occurred.
 
Info Catalog (mysql.info.gz) mysql_thread_id (mysql.info.gz) C API functions (mysql.info.gz) mysql_warning_count
automatically generated byinfo2html