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

21.8.7.13. mysql_eof()

my_bool mysql_eof(MYSQL_RES *result)

Описание

Эта функция осуждается. mysql_errno() или mysql_error() может использоваться вместо этого.

mysql_eof() определяет, была ли последняя строка набора результатов считана.

Если Вы получаете набор результатов от успешного вызова до mysql_store_result(), клиент получает весь набор в одной работе. В этом случае, a NULL возвратитесь из mysql_fetch_row() всегда означает, что конец набора результатов был достигнут, и ненужное вызвать mysql_eof(). Когда использующийся с mysql_store_result(), mysql_eof() всегда возвращает true.

С другой стороны, если Вы используете mysql_use_result() чтобы инициировать извлечение набора результатов, строки набора получаются из сервера один за другим, как Вы вызываете mysql_fetch_row() неоднократно. Поскольку ошибка может произойти на соединении во время этого процесса, a NULL возвращаемое значение от mysql_fetch_row() не обязательно означает, что конец набора результатов обычно достигался. В этом случае можно использовать mysql_eof() определить, что произошло. mysql_eof() возвращает ненулевое значение, если конец набора результатов был достигнут и нуль, если ошибка произошла.

Исторически, mysql_eof() предшествует стандартным функциям ошибок MySQL mysql_errno() и mysql_error(). Поскольку те функции ошибок предоставляют ту же самую информацию, их использование предпочитается mysql_eof(), который осуждается. (Фактически, они предоставляют больше информации, потому что mysql_eof() возвраты только булево значение, тогда как функции ошибок указывают на причину ошибки, когда каждый происходит.)

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

Нуль, если никакая ошибка не произошла. Ненулевой, если конец набора результатов был достигнут.

Ошибки

Ни один.

Пример

Следующий пример показывает, как Вы могли бы использовать mysql_eof():

mysql_query(&mysql,"SELECT * FROM some_table");result = mysql_use_result(&mysql);while((row = mysql_fetch_row(result))){    // do something with data}if(!mysql_eof(result))  // mysql_fetch_row() failed due to an error{    fprintf(stderr, "Error: %s\n", mysql_error(&mysql));}

Однако, можно достигнуть того же самого эффекта со стандартными функциями ошибок MySQL:

mysql_query(&mysql,"SELECT * FROM some_table");result = mysql_use_result(&mysql);while((row = mysql_fetch_row(result))){    // do something with data}if(mysql_errno(&mysql))  // mysql_fetch_row() failed due to an error{    fprintf(stderr, "Error: %s\n", mysql_error(&mysql));}