Har du testat mysql_ping()
?
Uppdatering: Från PHP 5.5 och framåt, använd mysqli_ping() istället.
Alternativt skulle ett andra (mindre tillförlitligt) tillvägagångssätt vara:
$link = mysql_connect('localhost','username','password');
//(...)
if($link == false){
//try to reconnect
}