5.4.84 mysql_store_result()
MYSQL_RES *
mysql_store_result(MYSQL *mysql)
Описание
mysql_store_result() — это синхронная функция. Её асинхронный аналог — mysql_store_result_nonblocking(), для использования приложениями, требующими асинхронного взаимодействия с сервером. См. Главу 7, C API Асинхронный интерфейс.
После вызова mysql_real_query() или mysql_query(), вы должны вызвать mysql_store_result() или mysql_use_result() для каждого оператора, который успешно генерирует результат набора данных (, , , , , и так далее). Вы также должны вызвать mysql_free_result() после завершения работы с набором результатов.
Вам не нужно вызывать mysql_store_result() или mysql_use_result() для других операторов, но это не навредит и не вызовет заметного снижения производительности, если вы вызовете mysql_store_result() во всех случаях. Вы можете определить, содержит ли оператор набор результатов, проверив, возвращает ли mysql_store_result() ненулевое значение (об этом позже).
Если вы включили поддержку нескольких операторов, вы должны извлекать результаты из вызовов mysql_real_query() или mysql_query() с помощью цикла, который вызывает mysql_next_result() для определения наличия дополнительных результатов. Пример см. в Разделе 3.6.3, “Поддержка выполнения нескольких операторов”.
Чтобы определить, возвращает ли оператор набор результатов, вызовите mysql_field_count(). См. Раздел 5.4.23, “mysql_field_count()”.
mysql_store_result() считывает весь результат запроса для клиента, выделяет структуру MYSQL_RES и помещает результат в эту структуру.
mysql_store_result() возвращает NULL, если оператор не возвращает набор результатов (например, если это был оператор ), или произошла ошибка, и чтение набора результатов завершилось неудачно.
Возвращается пустой набор результатов, если не возвращено ни одной строки. (Пустой набор результатов отличается от значения NULL в качестве возвращаемого значения.)
После вызова mysql_store_result() и получения результата, не являющегося указателем NULL, вы можете вызвать mysql_num_rows(), чтобы узнать, сколько строк находится в наборе результатов.
Вы можете вызвать mysql_fetch_row() для извлечения строк из набора результатов или mysql_row_seek() и mysql_row_tell() для получения или установки текущей позиции строки в наборе результатов.
См. Раздел 3.6.9, “NULL mysql_store_result() Возврат после успешного mysql_query()”.
Значения возврата
Указатель на структуру результата MYSQL_RES с результатами. NULL, если оператор не возвращает набор результатов или произошла ошибка. Чтобы определить, произошла ли ошибка, проверьте, возвращает ли mysql_error() непустую строку, mysql_errno() ненулевое значение или mysql_field_count() нулевое.
Ошибки
mysql_store_result() сбрасывает mysql_error() и mysql_errno(), если выполнение прошло успешно.
-
Операторы были выполнены в неправильном порядке.
-
Недостаточно памяти.
-
Сервер MySQL вышел из строя.
-
Соединение с сервером было потеряно во время запроса.
-
Произошла неизвестная ошибка.
© 2025 Oracle
Licensed under the GPLv2 License.