我有一些保存在PHP字符串中的HTML代码
$str = "<font size=2 color=#e0e0e0>you don't have a clue</font>";
我必须将此字符串写入DB,以便$str
必须成为查询的一部分..
现在无论我的查询...只要字符串中没有'
单引号,它就能正常工作....
以下两个中的任何一个都将解决我的问题
一些内置方法解析PHP字符串并从中删除所有'
单引号 ...我记得在通过 SQL注入。
'
单引号通过查询提交给数据库而不更改查询,即如何使此查询正常工作 $str = "Don't";
mysql_query("UPDATE content SET text='".$str."' WHERE p_ID='1');
注意:
'
提交$str
来自用户输入...我正在使用 WMD 和 PHP Markdown ,所以现在您知道问题所在...... < / LI>
答案 0 :(得分:3)
mysql_query("UPDATE content SET text='". mysql_real_escape_string($str)."' WHERE p_ID='1'");
在将用户输入提交到数据库之前没有转义用户输入是一个安全漏洞,它允许用户注入一个定制的查询块,它将改变您的原始查询,并随之执行。它不仅允许合法用户提交包含单引号的内容,还可以防止恶意用户sql-injecting查询。
答案 1 :(得分:1)
您应该考虑使用PDO和parameterized queries。