2012-02-10 119 views
2

我使用PDO將值插入MySQL的用PDO php在mysql中插入&符號(&)?

我在做這樣的事情

$sql = $db->prepare("INSERT INTO table(value) VALUES(?)"); 
$sql -> execute(array($value)); 

我注意到,如果我在我的輸入字段中的文本&型,它被輾轉進入插入MySQL的。我猜這是好事,因爲它表明mysql注入受到保護?那麼如果我想只有這樣的價值作爲一個文本,如:beer & wine

任何建議怎麼辦?

+0

它不應該逃避'&'。查詢中引用了你的字符串嗎? – alex 2012-02-10 06:15:38

+0

我剛剛在示例中寫了我寫的內容。我有一個問號'?'沒有引號? – hellomello 2012-02-10 06:17:06

+0

你需要把'?'換成引號。 – alex 2012-02-10 06:17:57

回答

1

我想這是很好的

這顯然是壞的。無法存儲某些符號的數據庫是無稽之談。想象一下這個網站上使用了一個。 你根本無法問你的問題!

它表明mysql注入被保護了嗎?

它什麼也沒有顯示。 &符與注射無關,正如我上面所說的,去除符號與注射保護無關。

它被刪除到插入mysql。

它沒有。就像你看到它一樣。你看到它不在數據庫,但在其他地方。那是你的問題。

插入前請檢查您的數據。
檢查您的數據庫。找到你的&符號不變。
然後跟蹤您的數據流,找到「&」號丟失的位置。
然後問一個問題。

+0

粗魯的答案是最好的 – 2012-02-10 06:53:13

+0

不要稱它粗魯。它可能很苛刻,但不是粗魯。我不太在意措辭,但對於紅色按鈕很大的人來說,這是一個觸發關鍵字。是的,某些答案比迴避者好。 – 2012-02-10 07:11:56