6.4.17 mysql_stmt_next_result()
int
mysql_stmt_next_result(MYSQL_STMT *mysql)
Описание
Эта функция используется при работе с подготовленными запросами для выполнения хранимых процедур, которые могут возвращать несколько наборов результатов. Используйте цикл, который вызывает mysql_stmt_next_result(), чтобы определить, есть ли ещё результаты. Если процедура имеет OUT или INOUT параметры, их значения будут возвращены как набор результатов с одной строкой после любых других наборов результатов. Значения будут появляться в том порядке, в котором они объявлены в списке параметров процедуры.
Сведения об эффекте необработанных условий на параметры процедуры см. в .
mysql_stmt_next_result() возвращает статус, указывающий, существуют ли дополнительные результаты. Если mysql_stmt_next_result() возвращает ошибку, больше результатов нет.
Перед каждым вызовом mysql_stmt_next_result() необходимо вызвать mysql_stmt_free_result() для текущего результата, если он произвел набор результатов (а не только статус результата).
После вызова mysql_stmt_next_result() состояние соединения такое же, как если бы вы вызвали mysql_stmt_execute(). Это означает, что вы можете вызвать mysql_stmt_bind_result(), mysql_stmt_affected_rows() и так далее.
Также можно проверить, есть ли больше результатов, вызвав mysql_more_results(). Однако эта функция не изменяет состояние соединения, поэтому, если она возвращает true, вам всё равно нужно вызвать mysql_stmt_next_result(), чтобы перейти к следующему результату.
Пример использования mysql_stmt_next_result() см. в разделе 3.6.5 «Поддержка подготовленных CALL-выражений».
Возвращаемые значения
| Возвращаемое значение | Описание |
|---|---|
| 0 | Успешно и есть ещё результаты |
| -1 | Успешно и больше результатов нет |
| >0 | Произошла ошибка |
Ошибки
-
Команды были выполнены в неправильном порядке.
-
Сервер MySQL вышел из строя.
-
Подключение к серверу было потеряно во время запроса.
-
Произошла неизвестная ошибка.
© 2025 Oracle
Licensed under the GPLv2 License.