【发布时间】:2012-05-21 08:41:21
【问题描述】:
我有一个用于连接 MySQL 数据库的 PHP 脚本。通过 mysql_connect 进行的连接工作正常,但是在尝试使用 PDO 时出现以下错误:
SQLSTATE[HY000] [2005] Unknown MySQL server host 'hostname' (3)
我用来连接的代码如下:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$hostname_localhost ="hostname";
$database_localhost ="dbname";
$username_localhost ="user";
$password_localhost ="pass";
$user = $_GET['user'];
$pass = $_GET['pass'];
try{
$dbh = new PDO("mysql:host=$hostname_localhost;dbname=$database_localhost",$username_localhost,$password_localhost);
echo 'Connected to DB';
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->prepare("SELECT check_user_company(:user,:pass)");
$stmt = $dbh->bindParam(':user',$user,PDO::PARAM_STR, 16);
$stmt = $dbh->bindParam(':pass',$pass,PDO::PARAM_STR, 32);
$stmt->execute();
$result = $stmt->fetchAll();
foreach($result as $row)
{
echo $row['company_id'].'<br />';
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
提前致谢
【问题讨论】:
-
错误很明显......指定的主机名无法解析为IP地址。
-
在显示“主机名”的地方,您应该填写 您的 mySQL 服务器的主机名或 IP 地址。
-
我忘了说,我使用的是 IP 地址(该 IP 地址也在错误中),但出于安全原因,我故意更改了这些值
-
你的IP地址不正确,或者那里没有运行你可以访问的mySql服务器。
-
我解决了这个问题,在声明中:$hostname_localhost 我也把端口号放在声明中,在添加后:
port=$port_localhost它工作了
标签: php mysql connection pdo host