Cakephp - обнаружьте, если неспособный, чтобы соединиться с базой данных и восстановиться корректно

У меня есть несколько сайтов, созданных с Cakephp. Если какой-либо из этих сайтов теряет их соединение с базой данных по любой причине, это не обрабатывает его хорошо. В основном это представляет себя в себе пытающийся отобразить ошибку много раз до катастрофических отказов браузера. Рендеринг себя в себе вызывается при помощи requestAction от элементов.

То, что я хочу знать, - то, как может я проверять, существует ли соединение с базой данных

Я попробовал это в app_controller перед фильтром:

if(!ConnectionManager::getDataSource('default'))
 {
  die(); //this will be a message instead
 }

но это, кажется, не работает.

Спасибо

7
задан 25 March 2010 в 05:43
поделиться

1 ответ

Используйте следующий код:

<?php
$filePresent = true;
if (!file_exists(CONFIGS.'database.php')):
  echo '<span class="notice-failure">Database configuration file is not present. Please contact admin@website</span>';
  $filePresent = false;
endif;
if ($filePresent!=false):
  uses('model' . DS . 'connection_manager');
  $db = ConnectionManager::getInstance();
  @$connected = $db->getDataSource('default');
  if (!$connected->isConnected()):
    echo '<p><span class="notice-failure">Not able to connect to the database. Please contact admin@website</span></p>';
  endif;
endif;
?>

Здесь я печатаю сообщения (в этих тегах). Вы можете заменить эхо-строку на die ().

7
ответ дан 7 December 2019 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: