php db 变量中的下划线导致问题

2023-12-28

我将数据库的所有登录信息存储在公共树之外的变量中,例如

$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);

works:

$this -> DB = new PDO ("mysql:host={$hostname};dbname={$dbname}", 'myname_user', 'password');

我希望这里有人能让我感到愚蠢......提前致谢。 -大卫

该错误可能会有所帮助...

无法获取数据库句柄:SQLSTATE[28000] [1045] 用户“myname”@“localhost”访问被拒绝(使用密码:NO)


我在 PDO 文档中找不到任何内容表明您可以在 DSN 字符串中指定用户名或密码 - 它是“数据库源名称”而不是“数据库源名称和身份验证”字符串,您不使用密码的事实应该是一个提示这个,用户名是“myname”可能只是因为大多数 RDBM 在未指定的情况下使用 $USER 环境变量进行连接(我必须假设设置为“myname”)

即我认为您只需使用额外的参数来传递身份验证凭据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php db 变量中的下划线导致问题 的相关文章