2011-03-31 92 views
1

我在插入逗號(,)時出現了問題,我的文本字段在html中。當我將它提交給mysql時,它將刪除數據。我如何處理這個問題?用戶在文本字段中插入逗號從mysql中刪除數據

我試過mysql_real_escape_string(),但仍然無法正常工作。我有很多數據,我也不想使用str_replace。有另外一種選擇嗎?

+3

我甚至無法想象使用逗號來分解SQL所需的錯誤級別,更不用說刪除某些東西了。你能說這個問題好一點嗎?最好用樣本代碼。 – Amadan 2011-03-31 00:11:43

+0

@amadan,我同意刪除令人困惑,但是如果他插入並且原始字段帶有逗號使得查詢認爲他正在移動到下一個數據字段,則打破是有意義的。雖然顯然這意味着各種不正確的用法......但嘿......這不是問題,對吧? :) – 2011-03-31 00:15:19

+0

@ Dr.Dredel,我想到了它,唯一能看到的是在SQL中使用未處理的字符串輸入作爲數值(即沒有引號)。它不應該刪除數據。順便說一下,你的逃跑建議並沒有幫助。 :) – Amadan 2011-03-31 00:18:05

回答

1

在您將郵件發送到服務器之前將其轉發給您的郵件服務器,以便將郵件存儲爲轉義郵件,然後在您的html頁面中打印該郵件時避開它。

so ... msgTosend = escape(whateverText);

,然後當你打印 msgToPrint = getFromDatabase(UNESCAPE(會將myText))

然而,作爲評論所指出的,你明明做的事情極不正常乾脆。

如果您要存儲字符串(因爲它聽起來),您需要在存儲它們之前將它們用引號括起來。一旦你這樣做了,沒有多少逗號可以毀掉任何東西。如果你不存儲字符串,但是有一些其他的數據類型,那麼在存儲任何東西之前,你應該把它們分解成服務器上的各個變量。惡意或簡單破壞的可能性基本上是100%,聽起來像你正在做的事情。

+0

哦,你是對的。因爲我沒有把我的價值引用。我認爲,因爲這是一個整數,我認爲它不需要引號,但如果有人需要把數字和逗號包括在內,那麼它會弄亂我的父親。引號固定了我的字符串。多謝你們! – hellomello 2011-03-31 16:20:58