<?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;
}
?>
Я не понимаю, почему вылезает эта ошибка, так как параметры PDO правильные (насчет порта не уверен, но уже несколько перепробовал и все равно не работает).
Ответ, который вы получаете, указывает на то, что он не получает абсолютно никакого ответа, вы можете исключить проблемы с аутентификацией. Убедитесь, что вы подключаетесь к правильному хосту и порту. Если это так, проверьте брандмауэр хоста и/или машины, с которой вы хотите подключиться. То, что сказал вам Альфонсо, также очень важно, убедитесь, что конфигурация mysql хоста разрешает внешние подключения.
Хороший способ помочь вам диагностировать проблему — попытаться подключиться вручную с помощью какого-либо программного клиента mysql, например Heidisql.
http://www.heidisql.com/
Загрузите его и попробуйте подключиться к той же базе данных, если вы не можете это эффективно означает, что необходимо проверить адрес хоста, порт или конфигурацию mysql.
Всего наилучшего
Судя по формату URL-адреса, к которому вы подключаетесь, база данных mysql размещается на сервере, отличном от того, на котором находятся файлы PHP:
Вы должны узнать у хостинг-провайдера, разрешен ли IP-адрес, с которого вы пытаетесь подключиться, для удаленных подключений MySQL к серверу, на котором размещена база данных.
Если вы работаете с локального хоста, скорее всего, вы тоже не сможете подключиться.
Если сервер, на котором находится база данных, совпадает с кодом, рекомендуется использовать «localhost»... у меня эта ошибка исчезла, потому что хостинг никогда не уведомлял об изменении IP; С другой стороны, было бы хорошо, если бы вы могли получить IP-адрес URL-адреса, который вы указываете в качестве хоста.