PDO:当主机设置为变量时,无法连接到 mysql


PDO: Can't connect to mysql when host is set in variable

我有麻烦了。我正在尝试将远程 mysql 服务器与 pdo (php 5.4.12( 连接。使用此代码,它可以正常连接:

$dbh=new PDO('mysql:host=xxx.xxx.xxx.xxx;dbname=newdb', $user, $pass);

但是,如果我尝试使用变量设置主机,如下所示:

$host='xxx.xxx.xxx.xxx';    
$dbh=new PDO('mysql:host='.$host.';dbname=newdb', $user, $pass);

只是想了想,告诉我:

致命错误:未捕获的异常"PDOException",消息为 D:''wamp''www''test.php 在第 21 行 21 这是创建新的PDO对象的行。

好的,我

正在尝试捕获异常(对不起,这对我来说是新的(,现在我有了这个:

错误!: SQLSTATE[HY000] [2002]

你能帮帮我吗?

双引号无济于事

$dbh = new PDO("mysql:host=$host;dbname=newdb", $user, $pass);

什么都没有改变。

var_dump('mysql:host='.$host.';dbname=newdb'(;

字符串 'mysql:host=xx.xx.xxx.xxx;dbname=newdb' (length=37(

{}的方式对我没有帮助。

好的,情况变得清晰起来。我尝试在另一个IP上连接另一台服务器,它通常已连接。它可以是mysql服务器安全选项吗?

试试这种方式

$host = "xxx.xxx.xxx.xxx";    
$dbh = new PDO("mysql:host={$host};dbname=newdb", $user, $pass);

双引号和大括号将 var 包含在字符串中,如下所示http://www.php.net/manual/en/language.operators.string.php