У меня есть код, который подключается к базе данных. Он выполняет оператор выбора над большой таблицей, используя mysql_unbuffered_query. Он просматривает записи, используя mysql_fetch_row, и, наконец, освобождает результат.
Иногда сервер, на котором выполняется код, отключается от сети и не может получить доступ к базе данных.
Как я обнаруживаю это разъединение, читая записи с mysql_fetch_row?
Вот пример кода:
$mysql_link = mysql_connect( 'server', 'uname', 'pword' );
if ( mysql_select_db( 'large_database', $mysql_link ) )
{
$query = "SELECT * FROM my_large_table";
$records = mysql_unbuffered_query( $query, $mysql_link );
while ( $record = mysql_fetch_row( $records ) ) // database disconnects here
{
// do something with the record
}
}
Задача ещё не решена.
Других решений пока нет …