Error en servicio web: Error: SQLSTATE[HY000] [2002] Connection refused

publicado por: Anonymous
<?php

$usu = $_REQUEST['usu'];
$pas = $_REQUEST['pas'];

try{
    // establecemos la conexion con PDO
    $conexion = new PDO("mysql:host=pagina.000webhostapp.com;port=3306;dbname=id554244_basededatos", "id453244_usuario", "contraseña");

    $conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // establecemos el juego de caracteres utf8
    $conexion->exec("SET CHARACTER SET utf8");

    // consulta para obtener el alumno con dicho usuario y contraseña
    $consulta_sql = "SELECT * FROM alumnos WHERE codAlu=? AND pasUsu=?";

    // preparamos la consulta
    $resultado = $conexion->prepare($consulta_sql);

    // ejecutamos la consulta con los aparametros del array, entrecomillado porque son varchar
    $resultado->execute(array("$usu", "$pas"));// guardamos en resultado la tabla virtual que devele la consulta

    $datos = array();

    foreach($resultado as $row){
        $datos[] = $row;
    }

    echo json_encode($datos);

}catch(Exception $e){
    die("Error: " . $e->GetMessage());
}finally{// esto se ejecuta haya o no error
    $conexion = null;
}

?>

No entiendo por qué sale este error, puesto que los parámetros de el PDO están correctos (no estoy seguro del puerto, pero ya he probado con varios y sigue sin funcionar).

solución

Por el formato de URL al que te estás conectando, la base de datos mysql parece estar alojada en un servidor diferente a donde están los archivos PHP:

host=pagina.000webhostapp.com;

Deberías averiguar con el proveedor de hosting, si la IP desde donde estás intentando conectarte está habilitada para hacer conexiones de MySQL remoto hacia servidor en donde está alojada la base de datos.

Si estás trabajando desde localhost, es muy probable que no puedas conectarte tampoco.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *