繁体   English   中英

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

[英]Using double quotes vs single quotes when passing string as a parameter to function

我有一个非常奇怪的问题,这不是一个真正的问题,因为我已经修复它但仍然,当我尝试连接到mysql数据库时:

mysql_connect("server", "user", "pass") or die(mysql_error());

我越来越:

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

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

mysql_connect("server", "user", 'pass') or die(mysql_error());

它工作得很好。 我没有在另一台服务器上遇到此问题。 所以也许它是在mysql设置或php.ini中的东西?

谢谢。

您的密码必须是$

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

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

查看手册以获取更多信息:

http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing

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

此外, \\n等特殊字符序列在双引号内解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM