Spec-Zone .ru
спецификации, руководства, описания, API
|
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()
получить или установить текущую позицию строки в пределах
набора результатов.
A MYSQL_RES
структура результата с результатами. NULL
(0) если ошибка произошла.
mysql_store_result()
сбросы mysql_error()
и mysql_errno()
если это успешно выполняется.
Команды выполнялись в неподходящем порядке.
Из памяти.
Сервер MySQL ушел.
Соединение с сервером было потеряно во время запроса.
Произошла неизвестная ошибка.