Tengo una instancia de CI que se conecta a un Db y comprueba los permisos antes de publicar páginas. Si la página no es accesible para el usuario actual, redirige a una página de inicio de sesión.Detecta cuando CodeIgniter no se puede conectar a un Db
La página de inicio de sesión, obviamente, tiene permisos establecidos para que sea accesible para todos los usuarios.
Después de un error reciente, el servidor de la base de datos volvió a una dirección IP diferente (gracias Amazon, EC2). Esto ocasionó que CI no pudiera verificar los permisos de ninguna página, incluido el inicio de sesión. Como el código asume que todo lo que no sea un Sí es un No, se redirigió a Iniciar sesión. El resultado fue un ciclo de redirección infinito.
Si bien este problema exacto no debería volver a ocurrir (IP elástica estática), me gustaría detectar cuando la conexión Db está inactiva y manejarla adecuadamente.
He visto This SO Question que es lo que estoy intentando lograr pero no estoy cargando explícitamente la base de datos en ningún controlador, está en el archivo de configuración de autocarga.
Así,
¿Cómo puedo consultar el estado de la conexión Db desde el interior de CI? ¿Tengo que ejecutar una consulta inútil y verificar si recibo resultados o hay una solución más elegante?
Editar: El cheque Actualmente se está realizando en un gancho:
$hook['post_controller_constructor'] = array(
'class' => 'AuthHook',
'function' => 'ValidateCredentials',
'filename' => 'auth.php',
'filepath' => 'hooks'
);
Esto se parece a la prueba que estaba buscando: ¿presumiblemente esto será nulo/no establecido si no hay conexión? – Basic
en realidad será falso, por lo que podría hacer "if (! $ This-> db-> conn_id)) – Laurence
Gracias, está funcionando muy bien – Basic