mysqli::store_result
mysqli_store_result
Transfers a result set from the last query
Description
Object-oriented style
public mysqli_resultfalse mysqli::store_result(int $mode
= 0)
mysqli_resultfalse mysqli_store_result(mysqli $mysql
, int $mode
= 0)
Parameters
-
mysql
-
Procedural style only: A mysqli object
returned by mysqli_connect or mysqli_init
-
mode
-
The option that you want to set. As of PHP 8.1, this parameter has no effect. It can be one of the following values:
Valid options
Name |
Description |
MYSQLI_STORE_RESULT_COPY_DATA |
Copy 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.
Note:
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.
Errors/Exceptions
If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR
) and the requested operation fails,
a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT
,
a mysqli_sql_exception is thrown instead.
Examples
See mysqli_multi_query.
Notes
Note:
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
- mysqli_real_query
- mysqli_use_result