【发布时间】:2023-03-20 08:31:01
【问题描述】:
我将数据库的所有登录信息存储在公共树之外的文件中的变量中,例如
$hostname = '172.0.0.0';
$dbname = 'myname_mydbname';
$username = 'myname_user';
$pw = 'password';
这很标准。
问题是我正在使用的这个特定主机需要将myname_ 附加到所有数据库和用户名的前面。当我存储这些字符串并将它们传递给 PDO 时,它会将用户名中的所有内容放在 myname 之后,并将密码字符串放在一起......如果我将用户名和密码作为字符串而不是变量放在函数中,一切正常。我已经黔驴技穷了。谁能帮忙?这是代码中的函数。
不起作用:
$this -> DB = new PDO ("mysql:host={$hostname}; dbname={$dbname}", $username, $pw);
作品:
$this -> DB = new PDO ("mysql:host={$hostname};dbname={$dbname}", 'myname_user', 'password');
我希望这里有人能让我觉得自己很愚蠢...在此先感谢。 -大卫
这个错误可能会有所帮助...
获取数据库句柄失败:SQLSTATE[28000] [1045] 用户 'myname'@'localhost' 的访问被拒绝(使用密码:否)
【问题讨论】:
-
在
new PDO语句之前尝试var_dump($username);。 -
这很有趣。我得到 NULL NULL。
-
$hostname = '172.0.0.0'; $dbname = 'myname_mydbname'; $用户名 = '我的用户名'; $pw = '密码';
-
都存储在同一个地方...抱歉把它放在三个不同的 cmets 中
标签: php mysql pdo mysql-error-1045