警告:mysql_connect():用户“”u1”的访问被拒绝?

Kei*_*gan 3 php mysql mysql-error-1045

这是非常基本的问题,我很抱歉提出这样一个菜鸟问题。

\n\n

但我收到这个错误:

\n\n
Warning: mysql_connect(): Access denied for user '\xc3\xa2\xe2\x82\xac\xc5\xbd\xc3\xa2\xe2\x82\xac\xc5\xbdu1'@'172.16.3.139' (using password: YES) in /usr/local/pem/vhosts/103503/webspace/httpdocs/eirestudio-tools/crm/add-contact.php on line 53 \n
Run Code Online (Sandbox Code Playgroud)\n\n

用户说\xc3\xa2\xe2\x82\xac\xc5\xbd\xc3\xa2\xe2\x82\xac\xc5\xbdu1

\n\n

这是什么意思?

\n\n

下面是一个示例连接,请注意用户,为什么我得到\xc3\xa2\xe2\x82\xac\xc5\xbd\xc3\xa2\xe2\x82\xac\xc5\xbdu1

\n\n
mysql_connect('localhost', '\xe2\x80\x8e\xe2\x80\x8euser', 'pass');\n
Run Code Online (Sandbox Code Playgroud)\n

bob*_*nce 5

\n

为什么我得到 \xc3\xa2\xe2\x82\xac\xc5\xbd\xc3\xa2\xe2\x82\xac\xc5\xbdu1?

\n
\n\n

您期待的只是 \xe2\x80\x98u1\xe2\x80\x99 吗?您从哪里读取该字符串?

\n\n

似乎发生的事情是您的配置源中的某处有一些不可见的控制字符。具体来说,字符串 \xe2\x80\x98\xc3\xa2\xe2\x82\xac\xc5\xbd\xe2\x80\x99 是当你采用 Unicode U+200E LEFT-TO-RIGHT MARK 并编码时得到的将其转换为 UTF-8,然后使用 Windows-1252 代码页读取它。

\n\n

如果从文本文件中读取用户名 \xe2\x80\x98u1\xe2\x80\x99 ,则可能会发生这种情况:您的程序可能会将其读取为 cp1252 中的字节(西方机器上的默认代码页),但文本编辑器会猜测它是 UTF-8 并将这些字节转换为 U+200E 字符,您将看不到这些字符。我不知道它们最初来自哪里,但您可以尝试重新输入/替换包含 \xe2\x80\x98u1\xe2\x80\x99 的源来删除它们。

\n