mysql_affected_rows()
mysql_change_user()
mysql_character_set_name()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_debug()
mysql_drop_db()
mysql_dump_debug_info()
mysql_eof()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_field()
mysql_fetch_field_direct()
mysql_fetch_fields()
mysql_fetch_lengths()
mysql_fetch_row()
mysql_field_count()
mysql_field_seek()
mysql_field_tell()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_init()
mysql_insert_id()
mysql_kill()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_options()
mysql_ping()
mysql_query()
mysql_real_connect()
mysql_real_escape_string()
mysql_real_query()
mysql_reload()
mysql_row_seek()
mysql_row_tell()
mysql_select_db()
mysql_shutdown()
mysql_stat()
mysql_store_result()
mysql_thread_id()
mysql_use_result()
Buy this Reference Manual in softcover from Barnes & Noble!
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)); }
Add your own comment.