Передает результирующий набор последнего запроса


mysqli_store_result

(PHP 5)

mysqli::store_result -- mysqli_store_result Передает результирующий набор последнего запроса

Описание

Объектно-ориентированный стиль

mysqli_result mysqli::store_result ([ int $option ] )

Процедурный стиль

mysqli_result mysqli_store_result ([ int $option ] )

Передает результирующий набор последнего запроса на соединении link. Дальнейшая работа с этим набором осуществляется функцией mysqli_data_seek().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

option

Устанавливаемая опция. Может иметь одно из следующих значений:

Valid options
Имя Описание
MYSQLI_STORE_RESULT_COPY_DATA Копирует результаты из внутреннего буффера mysqlnd в получаемые PHP переменные. По умолчанию, mysqlnd использует ссылки, предотвращая копирование и дублирование результатов в памяти. В некоторых случаях, например, если результаты содержат много небольших рядов, копирование может уменьшить общее потребление памяти, так как переменные PHP, содержащие результат, можно освобождать раньше (доступно только при сипользовании mysqlnd, c версии PHP 5.6.0)

Возвращаемые значения

Возвращает буферизованный объект результата запроса или FALSE в случае ошибки.

Замечание:

mysqli_store_result() возвращает FALSE, если запрос не возвращает результирующей таблицы (например, в случае выражения INSERT). Также функция вернет FALSE, если данные из результирующего набора не удалось прочитать. Наличие ошибки можно проверить функцией mysqli_error(), которая в этом случае вернет непустую строку; mysqli_errno() вернет ненулевое значение; и mysqli_field_count() также вернет ненулевое значение. Также возможной причиной возврата FALSE после успешного вызова mysqli_query() может быть слишком большой результирующий набор (не хватает памяти для его размещения). Если функция mysqli_field_count() возвращает ненулевое значение, значит запрос вернул непустой результирующий набор.

Примечания

Замечание:

Даже не смотря на хорошую практику очищать память, занятую результатами запросов, посредством функции mysqli_free_result(), если mysqli_store_result() передает большой результирующий набор, это может стать проблемой.

Примеры

См. mysqli_multi_query().

Смотрите также

  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию