Вы можете попробовать mysql_ping ()
Вот выдержка из этой страницы:
bool mysql_ping ([ resource $link_identifier ] )
Checks whether or not the connection to the server is working.
If it has gone down, an automatic reconnection is attempted.
This function can be used by scripts that remain idle for a long while,
to check whether or not the server has closed the connection and
reconnect if necessary.
Note: Since MySQL 5.0.13, automatic reconnection feature is disabled.
Что касается этого отрывка, я не знаю, отключена ли функция автоматического переподключения . Комментарий относится к mysql или PHP. Вам придется поэкспериментировать с этим, чтобы узнать. Если эта проблема переподключения действительно верна, то ответ @ Brad является параноидальным, так как вы можете запустить mysql_close сразу после запроса данных и их извлечения. В этот момент вы можете быть уверены, что нет действительного соединения, поскольку вы явно его закрыли. Следовательно, для следующего запроса вам нужно будет выполнить mysql_connect.
Однако не всегда рекомендуется закрывать непостоянные соединения самостоятельно, поскольку это может потенциально накапливать TIME_WAIT в netstat БД-сервера. Это заставило бы веб-серверы думать, что Соединения с БД больше не доступны, потому что MySQL выбежал там, где на самом деле была причина ОС, поскольку это задержало бы выпуск ресурсов Соединений. Для большей безопасности, извините, запустите mysql_close, когда закончите, и mysql_connect / mysql_query для следующего запроса.
Если вы хотите, вы можете создать парадигму try-catch или набор утверждений if-then-else для первого запуска mysql_ping для установленного соединения. Если это правда, используйте его с mysql_query. В противном случае запустите mysql_close / mysql_connect / mysql_query.