Documentation Home
Connectors and APIs Manual
Download this Manual
PDF (US Ltr) - 5.3Mb
PDF (A4) - 5.3Mb

Connectors and APIs Manual  /  ...  /  mysqli::store_result, mysqli_store_result mysqli::store_result, mysqli_store_result

Copyright 1997-2022 the PHP Documentation Group.

  • mysqli::store_result


    Transfers a result set from the last query


Object-oriented style

public mysqli_result|false mysqli::store_result(int mode= =0);

Procedural style

mysqli_result|false mysqli_store_result(mysqli mysql,
                                        int mode= =0);

Transfers the result set from the last query on the database connection represented by the mysql parameter to be used with the mysqli_data_seek function.



Procedural style only: A mysqli object returned by mysqli_connect or mysqli_init


The option that you want to set. It can be one of the following values:

Table 7.13 Valid options

MYSQLI_STORE_RESULT_COPY_DATACopy results from the internal mysqlnd buffer into the PHP variables fetched. By default, mysqlnd will use a reference logic to avoid copying and duplicating results held in memory. For certain result sets, for example, result sets with many small rows, the copy approach can reduce the overall memory usage because PHP variables holding results may be released earlier (available with mysqlnd only)

Return Values

Returns a buffered result object or false if an error occurred.


mysqli_store_result returns false in case the query didn't return a result set (if the query was, for example an INSERT statement). This function also returns false if the reading of the result set failed. You can check if you have got an error by checking if mysqli_error doesn't return an empty string, if mysqli_errno returns a non zero value, or if mysqli_field_count returns a non zero value. Also possible reason for this function returning false after successful call to mysqli_query can be too large result set (memory for it cannot be allocated). If mysqli_field_count returns a non-zero value, the statement should have produced a non-empty result set.


See mysqli_multi_query.


Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result function, when transferring large result sets using the mysqli_store_result this becomes particularly important.

See Also