我正在使用html解析器从第三方网站抓取数据,然后将我需要的信息插入MySQL。事实上很多信息都包含撇号。麻烦在于SQL查询如下:
INSERT INTO table (column) VALUE ('".$value."')
如果$variable
中有撇号,则查询会中断。我手动插入所有信息的信息太多了。这将耗费太多时间。我有什么建议让这个查询起作用吗?
答案 0 :(得分:4)
这是一个经典的SQL注入漏洞。如果$value
的值由用户控制,他们现在基本上可以做任何事情。被删除字符串中的引号会突破SQL字符串中的引用环境,因此允许执行任意SQL命令。
简短的回答是,使用mysql_real_escape_string
。
当然,还有必要的“mysql_ *已被弃用,使用mysqli或PDO”这一部分。
答案 1 :(得分:1)
换句话说,您的查询容易被SQL Injection
攻击。更好地使用PDO
或MySQLi
扩展,因为您标记了`PHP。