Por omisión, el complemento no intenta la tolerancia a fallos si falla al conectarse a un equipo anfitrión. Esto evita los problemas relacionados con el estado de la conexión. Se recomienda tratar de forma manual los errores de conexión de una manera similar a una transacción fallida. Se debería capturar el error, reconstruir el estado de la conexión y volver a ejecutar la consulta tal como se muestra abajo.
Si el estado de la conexión no es la cuestión, de forma alternativa se puede habilitar la tolerancia a fallos automática y silenciosa. Dependiendo de la configuración, la tolerancia a fallos automática y silenciosa se intentará en el maestro antes de emitir un error, o se intentará conectar a otros esclavos, dada la consulta permitida para ello, antes de intentar conectarse a un maestro. Ya que la tolerancia a fallos automática no es infalible, no se trata en esta guía rápida. En su lugar, los detalles se proporcionan en la sección de conceptos posterior.
Ejemplo #1 Tolerancia a fallos manual, opcional automática
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
       "filters": { "roundrobin": [] }
    }
 }
Ejemplo #2 Tolerancia a fallos manual
<?php
$mysqli = new mysqli("myapp", "nombre_usuario", "contraseña", "base_datos");
if (!$mysqli) {
    /* Por supuesto, su manejo de errores es mejor... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}
$sql = "SELECT 1 FROM DUAL";
/* el manejo de errores debería realizarse sin tener en cuenta el complemento */
if (!($res = $enlace->query($sql))) {
    /* específico del complemento: comprobar errores de conexión */
    switch ($enlace->errno) {
    case 2002:
    case 2003:
    case 2005:
        printf("Error de conexión - ¡intentando con el siguiente esclavo!\n");
        /* el equilibrador de carga elegirá el siguiente esclavo */
        $res = $enlace->query($sql);
        break;
    default:
        /* no hay errores de conexión, la tolerancia a fallos es poco probable que ayude */
        die(sprintf("SQL error: [%d] %s", $enlace->errno, $enlace->error));
        break;
    }
}
if ($res) {
  var_dump($res->fetch_assoc());
}
?>