|
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 ушел.
Соединение с сервером было потеряно во время запроса.
Произошла неизвестная ошибка.