Php 将字符串作为参数传递给函数时使用双引号与单引号
我有一个很奇怪的问题,其实不是问题,因为我已经解决了,但是, 当我试图通过以下方式连接到mysql db时: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_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
这样的特殊字符序列用双引号解释。您的密码中有一个$
,不是吗?