<?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 参数是正确的(我不确定端口,但我已经尝试了几个,但它仍然不起作用)。
您收到的响应表明它绝对没有收到响应,您可以排除身份验证问题。确保您连接到正确的主机和端口。如果是这样,请检查您要连接的主机和/或机器的防火墙。Alfonso告诉你的也很重要,检查主机的mysql配置是否允许外部连接。
帮助您诊断问题的一个好方法是尝试手动连接一些软件 mysql 客户端,例如 Heidisql
http://www.heidisql.com/
下载它并尝试连接到同一个数据库,如果不能有效意味着需要检查主机地址,端口或mysql配置。
一切顺利
从您要连接的 URL 格式来看,mysql 数据库似乎托管在与 PHP 文件所在的服务器不同的服务器上:
您应该从托管服务提供商处了解您尝试连接的 IP 是否已启用以与托管数据库的服务器建立远程 MySQL连接。
如果您在本地主机上工作,您可能也无法连接。
如果数据库所在的服务器与代码所在的服务器相同,建议使用“localhost”...这个错误消失了,因为托管服务在IP更改时从未通知过;另一方面,如果您能获得您指定为主机的 URL 的 IP,那就太好了