2011-07-08 58 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