当我浏览我的网站时,一切正常。该网站与数据库连接并显示结果。但是,每当遇到mysql_resl_escape_string
时,我都会收到此错误:
mysql_real_escape_string()[function.mysql-real-escape-string]:无法通过套接字'/var/lib/mysql/mysql.sock'(2)连接到本地MySQL服务器......
请注意,一旦我从每个页面删除mysql_real_escape_string代码,网站就会正常运行。但是,这是不合理的。这件事的解决方法是什么?
答案 0 :(得分:1)
要使mysql_real_escape_string
生效,首先必须通过mysql_connect
答案 1 :(得分:0)
错误表示在php.ini
中未正确配置默认的mysql数据库连接。
如果没有先连接到数据库,您可能会使用mysql_real_escape_string
,这就是PHP将尝试使用php.ini
的默认配置连接到数据库。
在你的情况下,这些默认设置不能正常运行,这就是全部。
更改配置并且错误消失 - 或 - 提供有效的mysql数据库连接作为mysql_real_escape_string
函数调用的参数。
附加说明:如果您正在编写新代码,请删除mysql_*
函数以访问您的mysql数据库。请改为选择Mysqli
或PDO
。
答案 2 :(得分:0)
您是否将从mysql_connect返回的连接变量作为第二个参数传递?
另一方面,您应该真正转向使用PDO,如果您使用其准备功能,它会自动转义字符串。
答案 3 :(得分:-1)
您正在以错误的方式使用此功能 您只需在代码顶部的某处处理所有用户输入值,而不是在将它们放入查询之前立即处理仅字符串值。 它会引导你进行sql注入