(PHP 5, PHP 7, PHP 8)
mysqli::store_result -- mysqli_store_result — Передаёт на клиента результирующий набор последнего запроса
Объектно-ориентированный стиль
Процедурный стиль
Передаёт результирующий набор последнего запроса на соединении
mysql
. Дальнейшая работа с этим набором осуществляется
функцией mysqli_data_seek().
mysql
Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().
mode
Устанавливаемая опция. Начиная с PHP 8.1, параметр ни на что не влияет. Может иметь одно из следующих значений:
Имя | Описание |
---|---|
MYSQLI_STORE_RESULT_COPY_DATA |
Копирует результаты из внутреннего буфера mysqlnd в получаемые переменные PHP. По умолчанию mysqlnd использует ссылки, предотвращая копирование и дублирование результатов в памяти. В некоторых случаях, например, если результаты содержат много небольших рядов, копирование может уменьшить общее потребление памяти, так как переменные PHP, содержащие результат, можно освобождать раньше (доступно только при использовании mysqlnd) |
Возвращает буферизованный объект результата запроса или false
в случае
ошибки.
Замечание:
mysqli_store_result() возвращает
false
, если запрос не возвращает результирующей таблицы (например, в случае выражения INSERT). Также функция вернётfalse
, если данные из результирующего набора не удалось прочитать. Наличие ошибки можно проверить функцией mysqli_error(), которая в этом случае вернёт непустую строку; mysqli_errno() вернёт ненулевое значение; и mysqli_field_count() также вернёт ненулевое значение. Также возможной причиной возвратаfalse
после успешного вызова mysqli_query() может быть слишком большой результирующий набор (не хватает памяти для его размещения). Если функция mysqli_field_count() возвращает ненулевое значение, значит запрос вернул непустой результирующий набор.
Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR
) и запрошенная операция не удалась,
выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT
,
вместо этого будет выброшено исключение mysqli_sql_exception.
Версия | Описание |
---|---|
8.4.0 |
Передача параметра параметра mode устарела.
Начиная с PHP 8.1.0 параметр не имеет значения.
|
Смотрите mysqli_multi_query().
Замечание:
Даже несмотря на хорошую практику очищать память, занятую результатами запросов, посредством функции mysqli_free_result(), если mysqli_store_result() передаёт большой результирующий набор, это может стать проблемой.