поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    8.4.3.51. mysql_store_result()

    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() сразу же после окончания действий с результирующим набором.

    See Раздел 8.4.6.1, «Почему после успешных возвратов функции mysql_query() функция mysql_store_result() иногда возвращает NULL.

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

    Результирующая структура MYSQL_RES с результатами. NULL, если произошла ошибка.

    Ошибки

    • CR_COMMANDS_OUT_OF_SYNC

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

    • CR_OUT_OF_MEMORY

      Нехватка памяти.

    • CR_SERVER_GONE_ERROR

      Сервер MySQL неожиданно завершил работу.

    • CR_SERVER_LOST

      Соединение с сервером прервалось в процессе данного запроса.

    • CR_UNKNOWN_ERROR

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

     
    © 1997-2005 PHP Club Team
    Rambler's Top100