Spec-Zone .ru
спецификации, руководства, описания, API

22.8.11.17. mysql_stmt_next_result()

int mysql_stmt_next_result(MYSQL_STMT *mysql)

Описание

Эта функция используется, когда Вы используете подготовленный CALL операторы, чтобы выполнить хранимые процедуры, которые могут возвратить многократные наборы результатов. Используйте цикл, который вызывает 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(), см. Раздел 22.8.20, "Поддержка API C Готового CALL Операторы".

Возвращаемые значения

Возвращаемое значение Описание
0 Успешный и есть больше результатов
-1 Успешный и нет больше результатов
>0 Ошибка произошла

Ошибки