Mysql_real_escape_string():无法建立到服务器的链接

4

当我尝试使用mysql_real_escape_string()函数时,出现了以下错误。

Access denied for user 'ODBC'@'localhost' (using password: NO)

我不明白为什么必须连接到数据库才能检查值是否适合插入MySQL。


2
这个函数的手册页面上有详细的解释。 - Your Common Sense
@Col.Shrapnel:刚看了一下,手册确实提到了警告和原因,但没有给出一个非常合理的解释,尤其是关于字符集问题。 - mario
请参阅以下链接以了解有关编程的内容:http://dev.mysql.com/doc/refman/5.0/en/charset-literal.html + http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html - ajreal
3个回答

13
这是因为mysql_real_escape_string考虑连接的当前字符集,所以需要连接。:-)
如果您不想事先手动设置连接,则可以在.ini文件中设置各种MySQL运行时默认值
然而,如果您使用自己的数据库类(或仅使用手动命令),通常最好在脚本生命周期的早期建立连接。

然而,这个特性几乎从来没有被使用,因为几乎没有人使用mysql_set_charset()函数。 - Your Common Sense
@Col. Shrapnel - 很悲伤,但可能是真的。连接、字符集和表排序编码的知识明显缺乏。不过,这就是生活。 :-) - John Parker
对于99%的编码来说,这并不重要。此外,每个人都在使用(或者至少声称他们在使用)预处理语句,所以这也不重要。 - Your Common Sense
1
@Col. Shrapnel - 当然,我相信到下一个咕噜声结束时,每个人都会使用PDO。 :-) - John Parker

1

-3

查找并删除

mysql_close();

这个函数完全断开与MySQL服务器的连接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接