На сервере под Windows Server 2003 работает PHP-скрипт в режиме CLI (что-то вроде демона), он принимает данные и записывает их в базу.
Соединение с базой устанавливается через PDO с помощью самописного класса:
class DB {
protected static $dbInstance;
private function __construct() {
return self;
}
private function __clone() {
return self;
}
private function __wakeup() {
return self;
}
public static function getDB () {
if (is_null(self::$dbInstance)) {
try {
$cfg = Config::getConfig();
self::$dbInstance = new PDO(
'mysql:host='.$cfg['dbHost'].';dbname='.$cfg['dbName'].''
, $cfg['dbUser']
, $cfg['dbPass']);
}
catch (PDOException $e) {
return false;
}
}
return self::$dbInstance;
}
}
Когда данные идут непрерывно, соединение держится отлично. Но при простое скрипта более 17 часов (может быть и меньше) - данные перестают записываться. Проверка соединения на null результатов не принесла. Могу предположить, что надо как-то проверять состояние соединения.
Вопрос: как проверить наличие соединения с MySQL через PDO?