2009-08-16 57 views
2

我有這個奇怪的問題。mysql_real_escape_string不能在不同的服務器上工作

我有這樣的腳本:

echo $comment_content = $_POST['comment_content']; 
echo $comment_content = mysql_real_escape_string($comment_content); 

當我在我的網站服務器上運行它,它輸出的價值只有1次(沒有第二個),但是當我運行它在其他地方,其輸出的權利(2次)。 但是,我多次使用功能mysql_real_escape_string(在同一個網站上),並且它從未發生過。

這是整個代碼,僅此而已。

任何人都有過同樣的問題?如果是的話,你是如何解決它的?

編輯:the <?php ?>標籤也存在ofc。

+0

你不應該使用mysql_real_escape_string。要將用戶輸入發送到數據庫,您應該使用綁定參數。如果你沒有把它發送到數據庫,但是將它嵌入到HTML中,你應該使用適當的技術。 – 2009-08-16 21:18:50

+0

什麼樣的技術,例如? – Mike 2009-08-16 21:25:45

回答

9

mysql_real_escape_string需要現有的MySQL連接。 沒有連接,沒有逃脫。

+1

謝謝!就是這樣。但另一方面,如何在另一臺服務器上進行測試,即使沒有它,它也能正常工作? :-) – Mike 2009-08-16 21:23:35

+0

我也不明白它是如何工作的,請解釋更多 – indago 2012-05-31 14:11:54

+0

+1,因爲這使我瘋狂!如果可以的話,我會給你+100。謝謝 – jsherk 2012-12-06 04:52:10

0

檢查您的查詢和連接。如果我沒有記錯,如果前面的查詢或連接有問題,它也會導致mysql_real_escape_string也失敗。當我第一次使用PHP + MySQL時,我遇到了這個問題。

+0

那我究竟應該尋找什麼? :/ – Mike 2009-08-16 21:12:34

+0

確實,它需要有效的連接數據才能工作。但是,如果PHP無法連接到服務器,通常您會看到至少一個大胖警告。 – Thorarin 2009-08-16 21:14:33

相關問題