MYSQL_RES *mysql_store_result(MYSQL *mysql)
Описание
Функцию mysql_store_result() или
mysql_use_result() необходимо
вызывать после каждого
выполненного запроса,
извлекающего данные
(SELECT, SHOW,
DESCRIBE, EXPLAIN).
Нет необходимости в вызове
функции mysql_store_result() или
mysql_use_result() для других
запросов, но не будет никакого
вреда или заметной потери
производительности, если функция
mysql_store_result() будет
вызываться во всех случаях. Можно
определить, вернул ли данный
запрос результирующий набор,
проверкой, возвращает ли 0 функция
mysql_store_result() (более
подробно об этом см. дальше).
Для проверки того, вернул данный
запрос результирующий набор или
нет, можно использовать функцию
mysql_field_count(). See
Раздел 8.4.3.20, «mysql_field_count()».
Функция mysql_store_result()
читает весь результат запроса
данного клиента, выделяет
структуру MYSQL_RES и
помещает результат в эту
структуру.
Функция mysql_store_result()
возвращает нулевой указатель,
если данный запрос не вернул
результирующий набор (если этот
запрос был, например, командой
INSERT).
Функция mysql_store_result()
также возвращает нулевой
указатель, если чтение
результирующего набора
завершилось неудачно. Выяснить,
произошла ли ошибка, можно
следующим образом: если
mysql_error() не возвращает
нулевой указатель, если
mysql_errno() возвращает
величину <> 0 или если
mysql_field_count()возвращает
величину <> 0.
Пустой результирующий набор возвращается в случае, если нет ни одной возвращенной строки. (Пустой результирующий набор и нулевой указатель - разные вещи в контексте возвращаемых величин.)
Если была вызвана функция
mysql_store_result() и
полученный результат не является
нулевым указателем, то можно
вызвать функцию
mysql_num_rows() для
определения количества строк в
результирующем наборе.
Можно вызвать функцию
mysql_fetch_row() для выборки
строк из результирующего набора
или функции mysql_row_seek() и
mysql_row_tell() для получения
или установки положения текущей
строки внутри данного
результирующего набора.
Необходимо вызвать функцию
mysql_free_result() сразу же
после окончания действий с
результирующим набором.
Возвращаемые значения
Результирующая структура
MYSQL_RES с результатами.
NULL, если произошла
ошибка.
Ошибки
CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в ненадлежащем порядке.
CR_OUT_OF_MEMORY
Нехватка памяти.
CR_SERVER_GONE_ERROR
Сервер MySQL неожиданно завершил работу.
CR_SERVER_LOST
Соединение с сервером прервалось в процессе данного запроса.
CR_UNKNOWN_ERROR
Произошла неизвестная ошибка.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
