PHP PDO与MySQL的连接失败,mysql_connect工作正常

zel*_*owy 6 php mysql pdo

我正在尝试使用PDO连接到远程MySQL数据库,但它失败并出现错误:

Connection failed: SQLSTATE[28000] [1045] Access denied for user 'my_user'@'some.ip.address' (using password: YES)
Run Code Online (Sandbox Code Playgroud)

这就是我试图连接的方式:

$dsn = "mysql:host=sql.my_domain.nazwa.pl;dbname=my_db;port:3307";
$user = "my_user";
$password = "my_password";

try {
    $this->db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

它失败了.但是这样:

mysql_connect('sql.my_domain.nazwa.pl:3307', 'my_user', 'my_password');
Run Code Online (Sandbox Code Playgroud)

工作良好.

任何人都知道PDO可能出现什么问题,它的配置,我设置的参数或者这个特定的服务器(nazwa.pl)?

[解决]好了,这是简单的(也是棘手注意到...)语法错误,它应该是一个=,而不是:port部分dsn.

Flu*_*feh 5

尝试更换:

$dsn = "mysql:host=sql.my_domain.nazwa.pl;dbname=my_db;port:3307";
Run Code Online (Sandbox Code Playgroud)

$dsn = "mysql:host=sql.my_domain.nazwa.pl;dbname=my_db; port=3307";
Run Code Online (Sandbox Code Playgroud)