mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7, PHP 8)

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

Описание

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

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

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

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

Передаёт результирующий набор последнего запроса на соединении 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.

Примеры

Смотрите mysqli_multi_query().

Примечания

Замечание:

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

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

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