PDO:在变量中设置主机时无法连接到mysql

时间:2013-12-04 19:51:55

标签: php mysql pdo

我遇到了麻烦。我正在尝试将远程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',消息为'in   第21行的D:\ wamp \ www \ test.php   21它是创建新PDO对象的一条线。

好的,我试图捕捉异常(抱歉,这对我来说是新的),现在我有了这个:

  

错误!:SQLSTATE [HY000] [2002]

请帮帮我吗?

双引号没有帮助

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

没有任何改变。

的var_dump( 'MySQL的:主机=' $主机 '; DBNAME = NEWDB');

  

string'mysql:host = xx.xx.xxx.xxx; dbname = newdb'(length = 37)

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

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

1 个答案:

答案 0 :(得分:1)

试试这种方式

$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