我正在使用PDO连接到MySQL数据库。在本地主机中运行时,该代码非常完美。但是,当我将代码传输到Web服务器时(当然,我已经相应地更改了用户名和密码),代码不起作用。它给出了以下错误
SQLSTATE[HY000] [1045] Access denied for user 'xxx_xxxxx'@'localhost' (using password: YES)
当我使用不建议使用的旧API-具有相同用户名密码组合的mysql_connect()测试连接时,它可以完美工作,因此我知道用户名密码组合是正确的。
这是我的相关代码
try {
$dsn = "mysql:dbname=company_dbname; host=localhost";
$user = "company_dbuser";
$password = "MyPassword";
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
$conn = new PDO($dsn, $user, $password, $options);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
答案 0 :(得分:0)
最终我能够解决问题 这是我编辑的代码
try {
$dsn = "mysql:dbname=company_dbname; host=localhost";
$user = 'company_dbuser';
$password = 'MyPassword';
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
$conn = new PDO($dsn, $user, $password, $options);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
请检查$ user和$ password分配-我分配了双引号,而不是双引号。