Y tal vez deberias probar con el try y catch como esta en el ejemplo:
<?php
try {
  $connected = ConnectionManager::getDataSource('default');
} catch (Exception $connectionError) {
  $connected = false;
}

if ($connected && $connected->isConnected()) {
  //Se conecto que hacer...
} else {
  //No se conecto que hacer...
}
?>

Y creería que tu función debería ser así:

public function estado_bd(){
        App::uses('ConnectionManager', 'Model');
        try {
  $connected = ConnectionManager::getDataSource('default');
        } catch (Exception $connectionError) {
  $connected = false;
        }
        if ($connected && $connected->isConnected()) {
  return true;
        } else {
  return false
        }
}

De esta manera atrapa el error.

Saludos!!


El 13 de noviembre de 2013 16:11, Marcelo <chelitole...@gmail.com> escribió:

> Tengo una aplicación que utiliza 3 bases de datos, si por algún motivo una
> base de datos pierde la conexión, me sale le siguiente error:
>
> Error: A Database connection using "Mysql" was missing or unable to
>> connect.
>> The database server returned this error: SQLSTATE[28000] [1045] Access
>> denied for user 'root'@'localhost' (using password: YES)
>
>
> El problema es que la aplicación debe seguir funcionando si pierde la
> conexión, y si coloco el debug en 0 me sale el siguiente error:
>
> Error: An Internal Error Has Occurred.
>
>
> Alguna opción para que la aplicación siga mostrando el contenido estático
> y pueda seguir funcionando si pierde la conexión en alguna base de datos?
>
> Saludos
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus correos
> electrónicos, envía un correo electrónico a
> cakephp-es+unsubscr...@googlegroups.com.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> cakephp-es@googlegroups.com.
> Visita este grupo en http://groups.google.com/group/cakephp-es.
> Para obtener más opciones, visita https://groups.google.com/groups/opt_out
> .
>

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos 
electrónicos, envía un correo electrónico a 
cakephp-es+unsubscr...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.
Visita este grupo en http://groups.google.com/group/cakephp-es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Responder a