public static function getUserAndPassword($ip_address, $hash)
 {
     try {
         $sql = 'SELECT ' . usuarioTableClass::getNameField(usuarioTableClass::ID) . ' AS id_usuario,
               ' . usuarioTableClass::getNameField(usuarioTableClass::USER) . ' AS usuario,
               ' . credencialTableClass::getNameField(credencialTableClass::NOMBRE) . ' AS credencial
           FROM ' . usuarioTableClass::getNameTable() . ' INNER JOIN ' . recordarMeTableClass::getNameTable() . ' ON ' . usuarioTableClass::getNameField(usuarioTableClass::ID) . ' = ' . recordarMeTableClass::getNameField(recordarMeTableClass::USUARIO_ID) . '
                INNER JOIN ' . usuarioCredencialTableClass::getNameTable() . ' ON ' . usuarioTableClass::getNameField(usuarioTableClass::ID) . ' = ' . usuarioCredencialTableClass::getNameField(usuarioCredencialTableClass::USUARIO_ID) . '
                INNER JOIN ' . credencialTableClass::getNameTable() . ' ON ' . credencialTableClass::getNameField(credencialTableClass::ID) . ' = ' . usuarioCredencialTableClass::getNameField(usuarioCredencialTableClass::CREDENCIAL_ID) . '
           WHERE ' . recordarMeBaseTableClass::getNameField(recordarMeTableClass::IP_ADDRESS) . ' = :ip_address
           AND ' . recordarMeBaseTableClass::getNameField(recordarMeTableClass::HASH_COOKIE) . ' = :hash
           AND ' . usuarioBaseTableClass::getNameField(usuarioBaseTableClass::DELETED_AT) . ' IS NULL
           AND ' . usuarioBaseTableClass::getNameField(usuarioBaseTableClass::ACTIVED) . ' = :actived
           AND ' . credencialTableClass::getNameField(credencialTableClass::DELETED_AT) . ' IS NULL';
         $params = array(':ip_address' => $ip_address, ':hash' => $hash, ':actived' => config::getDbDriver() === 'mysql' ? 1 : 't');
         $answer = model::getInstance()->prepare($sql);
         $answer->execute($params);
         $answer = $answer->fetchAll(PDO::FETCH_OBJ);
         return count($answer) > 0 ? $answer : false;
     } catch (PDOException $exc) {
         throw $exc;
     }
 }