2010-08-29 125 views
0

當我從textarea插入值時,我的sql查詢沒有在'&'字符後插入數據。'&'所有字符都在數據庫中更新。我正在使用mysql_real_escape_string()函數。 這些特殊字符應該如何處理?&(&符號)字符未插入數據庫

+0

你能顯示整個代碼或至少幾行哪裏發生這種情況? – shamittomar 2010-08-29 06:33:41

回答

-1

你的php.ini中是否也啓用了魔術引號?這可能會導致一些陷阱。

您可以通過在新的頁面中運行該代碼來檢查它。

if(get_magic_quotes_gpc()) 
    echo "Magic quotes are enabled"; 
else 
    echo "Magic quotes are disabled"; 

如果您啓用了魔術引號,並嘗試使用mysql_real_escape_string,則可以雙重轉義事物。其他要檢查的內容:文本是否太長而無法放入適當的列中? MySQL截斷數據以適應,而不是拋出太大的錯誤。

+0

我在活服務器上工作。我無法修改php.ini文件。是另一種方式嗎? – 2010-08-29 06:31:01

+0

猜測不是一個好程序員應該依賴的東西 – 2010-08-29 06:40:03

+0

mysql_real_escape_string()函數不能使用'&'字符? – 2010-08-29 06:42:13

1

不,與這個角色無關。
但是你一定要調試你的代碼看看你的數據發生了什麼。
通過追蹤從textarea到數據庫的整個路徑。
很可能它甚至不存在於查詢中。您最少打印此查詢並檢查它是否正確。如果沒有 - 追溯。在腳本的各個位置打印textarea數據,以捕捉「&」號丟失的位置。

0

Probabaly值得確認你是用引號將字符串括起來。否則,我們將需要更多的細節!

錯誤:

UPDATE table SET value = & WHERE field = 'foo' 

右:

UPDATE table SET value = '&' WHERE field = 'foo'