我知道這是一個相當基本的問題,但是當HTML被插入MySQL數據庫時,對於表單輸入字段使用正確的函數是什麼? (mysql_real_escape_string,htmlentities等)將HTML數據保存到MySQL數據庫時使用的正確函數是什麼?
此外,在從文本字段,html頁面等打印數據庫中的值時應該使用哪個函數?
我知道這是一個相當基本的問題,但是當HTML被插入MySQL數據庫時,對於表單輸入字段使用正確的函數是什麼? (mysql_real_escape_string,htmlentities等)將HTML數據保存到MySQL數據庫時使用的正確函數是什麼?
此外,在從文本字段,html頁面等打印數據庫中的值時應該使用哪個函數?
在打印之前使用mysql_real_escape_string()
插入數據庫時,使用htmlspecialchars()
。
如果您使用PDO和準備好的語句,則不必太擔心要在數據庫中插入的數據。
關於輸出,它取決於你的需要:如果它是真正的html輸出,你不能使用htmlentities
作爲輸出將不再是HTML。
@ user576875,我在保存表單時使用了mysql_real_escape_string(),而在輸入字段中打印值時(出於編輯目的)使用了htmlspecialchars(),但在任何引號前出現反斜槓「\」。我在防止這種情況發生的同時,確保在用戶有意將其添加到輸入字段時出現反斜槓 – Cofey 2011-01-27 18:38:59