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.4, «Поддержка подготовленных операторов CALL».
Значения возврата
| Значение возврата | Описание |
|---|---|
| 0 | Успешно и есть еще результаты |
| -1 | Успешно и больше результатов нет |
| >0 | Произошла ошибка |
Ошибки
-
Команды были выполнены в неправильном порядке.
-
Сервер MySQL ушел.
-
Соединение с сервером было потеряно во время запроса.
-
Произошла неизвестная ошибка.
© 2025 Oracle
Licensed under the GPLv2 License.