Spec-Zone.ru › MySQL Connectors 1.0

5.4.84 mysql_store_result()

MYSQL_RES *
mysql_store_result(MYSQL *mysql)

Описание

Примечание

mysql_store_result() — это синхронная функция. Её асинхронный аналог — mysql_store_result_nonblocking(), предназначенный для приложений, требующих асинхронного взаимодействия с сервером. См. Глава 7, C API Asynchronous Interface.

После вызова mysql_real_query() или mysql_query(), для каждого оператора, успешно вернувшего набор результатов (например, , , , , , и так далее), необходимо вызвать mysql_store_result() или mysql_use_result(). Также после работы с набором результатов необходимо вызвать mysql_free_result().

Для других операторов вызов mysql_store_result() или mysql_use_result() не обязателен, но он не наносит вреда и не приводит к заметному ухудшению производительности, если вызывать mysql_store_result() всегда. Вы можете определить, возвращает ли оператор набор результатов, проверив, возвращает ли mysql_store_result() ненулевое значение (подробнее об этом позже).

Если вы включили поддержку нескольких операторов, результаты вызовов mysql_real_query() или mysql_query() следует извлекать, используя цикл, который вызывает mysql_next_result() для определения наличия дополнительных результатов. Пример смотрите в Разделе 3.6.3, “Поддержка выполнения нескольких операторов”.

Чтобы определить, возвращает ли оператор набор результатов, вызовите mysql_field_count(). См. Раздел 5.4.23, “mysql_field_count()”.

mysql_store_result() считывает весь результат запроса клиентом, выделяет структуру MYSQL_RES и помещает результат в эту структуру.

mysql_store_result() возвращает NULL, если оператор не вернул набор результатов (например, если это был оператор ), или произошла ошибка, и чтение набора результатов завершилось неудачно.

Возвращается пустой набор результатов, если не возвращено ни одной строки. (Пустой набор результатов отличается от значения null в качестве возвращаемого значения.)

После вызова mysql_store_result() и получения результата, который не является указателем null, можно вызвать mysql_num_rows(), чтобы узнать, сколько строк находится в наборе результатов.

Можно вызвать mysql_fetch_row() для извлечения строк из набора результатов или mysql_row_seek() и mysql_row_tell() для получения или установки текущей позиции строки в наборе результатов.

См. Раздел 3.6.9, “NULL mysql_store_result() Возврат после mysql_query() Успеха”.

Значения возврата

Указатель на структуру результата MYSQL_RES с результатами. NULL, если оператор не вернул набор результатов или произошла ошибка. Чтобы определить, произошла ли ошибка, проверьте, возвращает ли mysql_error() непустую строку, mysql_errno() ненулевое значение или mysql_field_count() ноль.

Ошибки

mysql_store_result() сбрасывает mysql_error() и mysql_errno(), если выполняется успешно.

  • Команды были выполнены в неправильном порядке.

  • Нет доступной памяти.

  • Сервер MySQL отключился.

  • Соединение с сервером было потеряно во время запроса.

  • Произошла неизвестная ошибка.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-8.4-en/mysql-store-result.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API