我有一个非常奇怪的问题,这不是一个真正的问题,因为我已修复但仍然, 当我尝试使用:
连接到mysql数据库时mysql_connect("server", "user", "pass") or die(mysql_error());
我得到:
用户'用户'@'服务器'拒绝访问(使用密码:是)
但是当我将密码周围的引号更改为单引号时:
mysql_connect("server", "user", 'pass') or die(mysql_error());
它运作得很好。 我没有在另一台服务器上遇到此问题。 所以也许它是mysql设置或php.ini中的东西?
感谢。
答案 0 :(得分:7)
密码中必须有$
。
这将导致php在字符串中插入变量。
您可能还有一个转义序列,例如密码中的\t
,这会导致类似的问题。
查看手册以获取更多信息:
http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing
答案 1 :(得分:2)
您的密码是否包含$
等特殊字符?在双引号中,PHP将尝试解释变量。因此,"My$Password"
将在PHP中产生一个名为$Password
的变量,而这个变量不存在。因此,生成的密码字符串将只是My
。 (如果您已启用显示E_NOTICE
错误,则应获取错误。)
此外,\n
等特殊字符序列在双引号内解释。