Mysql: Как не надо проверять «жива» ли база

При анализе кода, мною была найдена замечательная штука

// check for db-connection
$db_test = DB::query('SELECT COUNT(*) FROM products');
if (!$db_test) header('Location:' . prepUrl($_SERVER['REQUEST_URI']));

Почему именно каунт одной из больших таблиц для проверки «есть ли база» — это для меня загадка. SELECT id FROM products LIMIT 1 было бы чуть лучше, но даже так — КАЖДЫЙ раз до того как начать работать — а давайте соединимся с базой и проверим, не вылетела ли она от количества соединений. Потом она ВСЕ РАВНО может вылететь на середине выполнения — но мы же молодцы, мы проверили, тим лид может быть доволен. А тим лид потом немного не в себе*(((

Правильный ответ — прочитать как ловить исключения базы данных и ловить их. ЛОВИТЬ!

mysqli_report(MYSQLI_REPORT_STRICT);
 
//в соединении (которое не на каждом скрипте вообще нужно!)
try {
     $this->_db_link = new mysqli(self::DB_HOST, self::DB_USER, self::DB_PASS, self::DB_NAME)
     if (!$this->_db_link) {
         throw new Exception('DB CONNECTION ERROR', ERROR_SYSTEM_DB);
     }
     if (self::UTF8) {
         $this->_db_link->query('SET NAMES utf8');
     }
} catch (Exception $e) {
     if (DEBUG) {
         echo $e->getMessage();
     } else {
         header('Location:' . FT::prepUrl($_SERVER['REQUEST_URI']));
     }
     die('NO DB Connection');
}
 
//и в запросе
try {
    $link = $this->_db_link->query($query) 
} catch (Exception $e) {
     ... тоже самое
}
return $link;