Php 将字符串作为参数传递给函数时使用双引号与单引号

Php 将字符串作为参数传递给函数时使用双引号与单引号,php,mysql,quotes,Php,Mysql,Quotes,我有一个很奇怪的问题,其实不是问题,因为我已经解决了,但是, 当我试图通过以下方式连接到mysql db时: mysql_connect("server", "user", "pass") or die(mysql_error()); 我得到: 拒绝用户“用户”@“服务器”的访问(使用密码:是) 但当我将密码周围的引号更改为单引号时: mysql_connect("server", "user", 'pass') or die(mysql_error()); 它很好用。 我在另一台服务器上没

我有一个很奇怪的问题,其实不是问题,因为我已经解决了,但是, 当我试图通过以下方式连接到mysql db时:

mysql_connect("server", "user", "pass") or die(mysql_error());
我得到:

拒绝用户“用户”@“服务器”的访问(使用密码:是)

但当我将密码周围的引号更改为单引号时:

mysql_connect("server", "user", 'pass') or die(mysql_error());
它很好用。 我在另一台服务器上没有这个问题。 那么可能是mysql设置或php.ini中的内容


谢谢。

您的密码中必须有
$

这将导致php在字符串中插入一个变量

您的密码中可能还有转义序列,例如,
\t
,这将导致类似的问题

有关更多信息,请参阅手册:


您的密码是否包含任何特殊字符,如
$
?在双引号中,PHP将尝试解释变量。因此,
“My$Password”
将在PHP中生成一个名为
$Password
的变量,而该变量不在PHP中。因此,生成的密码字符串将只是
My
。(如果您已启用显示
E_NOTICE
错误,则应获得一个。)


此外,像
\n
这样的特殊字符序列用双引号解释。

您的密码中有一个
$
,不是吗?