Spec-Zone .ru
спецификации, руководства, описания, API

22.8.7.70. mysql_store_result()

MYSQL_RES *mysql_store_result(MYSQL *mysql)

Описание

После вызова mysql_query() или mysql_real_query(), следует вызвать mysql_store_result() или mysql_use_result() для каждого оператора, который успешно производит набор результатов (SELECT, SHOW, DESCRIBE, EXPLAIN, CHECK TABLE, и т.д). Следует также вызвать mysql_free_result() после того, как Вы делаетесь с набором результатов.

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

Если Вы включаете поддержке многократного оператора, следует получить следствия звонков mysql_query() или mysql_real_query() при использовании цикла, который вызывает mysql_next_result() определить, есть ли больше результатов. Для примера см. Раздел 22.8.17, "Поддержка API C Многократного Выполнения Оператора".

Если Вы хотите знать, должен ли оператор возвратить набор результатов, можно использовать mysql_field_count() проверять на это. См. Раздел 22.8.7.22,"mysql_field_count()".

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

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

mysql_store_result() также возвращает нулевого указателя, читая отказавшего набора результатов. Можно проверить, произошла ли ошибка, проверяя ли mysql_error() возвращает непустую строку, mysql_errno() ненулевые возвраты, или mysql_field_count() нуль возвратов.

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

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

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

См. Раздел 22.8.15.1, "Почему mysql_store_result() Иногда Возвраты NULL После mysql_query() Успех возвратов".

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

A MYSQL_RES структура результата с результатами. NULL (0) если ошибка произошла.

Ошибки

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