2011-07-08 59 views
-1

可能重复:
Best way to stop SQL Injection in PHP插入 '和“到MySQL使用PHP

我试图插入'符号和”使用PHP在MySQL表。但内容有这两个迹象,我得到一个MySQL错误。

$comment="I like '''' it so ""much"" Jaan"; 
mysql_query("INSERT INTO `comments` (`id` ,`name` ,`date` ,`comment`) VALUES ('', '$name', '$date', '$comment')"); 

以上是一个例子。每当用户插入'在他的评论问题开始。我知道关于mysql_real_escape_string(),但我不想用这个.bcz我的评论已经被过滤。请告诉我如何可以插入评论与这些语法。每一个建议都欢迎。

+3

STOP阅读[最佳办法阻止SQL注入](http://stackoverflow.com/questions/60174/best-way-to- stop-sql -injection-in-php)问题解决了,忽略所有关于“逃跑”的建议 – 2011-07-08 16:51:59

+2

你想开个钉子,但不想用锤子......除了建议使用额头,我只能建议你唱出提供的工具。无论你如何过滤,你认为你所做的事情可能是不够的,mysql_real_escape_string()是** MySQL准备数据的官方方法。 –

+0

实际上我也在考虑文件名的输入,那里有'或'可能存在,根据我的应用我不能更改文件名...所以如何输入文件名 –

回答

0

逃生用mysql_real_escape_string()每一个字符串变量。

+1

-1请停止。请参阅[停止SQL注入的最佳方法](http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php)。虽然这会起作用,但它是不合时宜的*过时*不良行为。 – 2011-07-08 17:15:24

+0

我同意,比PHP内置函数和库有更好的解决方案。但我想提供一个尽可能简单的解决方案。 –

+0

考虑还列出了非逃生替代方案(可能是mysqli或PDO)。全面的答案是一个全面的答案。 – 2011-07-08 17:30:49