花了一些时间对问题进行故障排除,从而使PHP/MySQL Web应用程序在连接数据库时遇到问题。可以使用完全相同的凭据从shell和phpMyAdmin访问数据库,这没有任何意义。

原来密码中带有$符号:

$_DB["password"] = "mypas$word";

发送的密码是“mypas”,这显然是错误的。

解决此问题的最佳方法是什么?我用\逃脱了$
$_DB["password"] = "mypas\$word";

而且有效。

我通常对字符串使用$string = 'test',这可能是我以前避免遇到此问题的方式。

这是正确的行为吗?如果此密码存储在数据库中并且PHP将其拔出怎么办-会发生同样的问题吗?我在这里想念什么...

最佳答案

$_DB['password'] = 'mypas$word';

单引号字符串不会被处理,而是按原样使用。除非特别需要$ variable或转义序列(\n,\r等)替代,否则应始终使用单引号字符串。它更快,更不容易出错。

10-08 14:46