8.4.3.42 mysql_dump_debug_info() |
Оглавление | 8.4.3.51 mysql_errno() |
mysql_eof()
my_bool mysql_eof(MYSQL_RES *result)
Данная функция не рекомендуется. Вместо нее можно использовать функции
mysql_errno()
или mysql_error()
.
Функция mysql_eof()
определяет, была ли данная строка последней из
прочитанных в результирующем наборе данных.
Если результирующий набор получен путем успешного вызова функции
mysql_store_result()
, то данный клиент получает полный набор данных за
одну операцию. В этом случае возврат NULL
из mysql_fetch_row()
всегда
означает, что достигнут конец результирующего набора и нет необходимости в
вызове функции mysql_eof()
. При использовании совместно с
mysql_store_result()
функция mysql_eof()
всегда будет возвращать TRUE
.
С другой стороны, при использовании mysql_use_result()
для инициализации
извлечения результирующего набора, клиент получает строки набора с сервера
поочередно при повторных вызовах функции mysql_fetch_row()
. Поскольку в
этом процессе может возникнуть ошибка в соединении, 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))) { // делаем что-то с данными } if(!mysql_eof(result)) // mysql_fetch_row() сбойнул из-за ошибки { 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))) { // что-то делаем с данными } if(mysql_errno(&mysql)) // mysql_fetch_row() сбойнул из-за ошибки { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); }
8.4.3.42 mysql_dump_debug_info() |
Оглавление | 8.4.3.51 mysql_errno() |