5.4.14 mysql_eof()
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)))
{
// 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));
}
© 2025 Oracle
Licensed under the GPLv2 License.