我正在使用「mysql_real_escape_string」將數據插入到mySQL中。來自mySQL的PHP結果不顯示輸入值內部的引號
爲了檢索它,我通過使用反斜槓來回顯它,並且它工作正常,除了當我將值放入輸入值(如本例中)時。單引號工作正常,例如:Milky's Home ...但是雙引號,剪下腳本,在第一個引號中:。例如:銀河系的「家」到底應該只:銀河的
如果我刪除的stripslashes,它表明:銀河/的/
所以,還是削減它在第一次報價。
這是腳本:
$id=mysql_real_escape_string($_POST[id]);
<?
echo stripslashes($Titlez['titlez']);
?>
<input type="text" size="150px" name="titlez" value="<? echo stripslashes($Titlez['titlez']); ?>">
我也嘗試過這兩個選項,但給出相同的結果:
<?
$titlez = stripslashes($Titlez['titlez']);
echo '<input type="text" size="150px" name="titlez" value="'.$titlez.'">';
echo "<input type=\"text\" size=\"150px\" name=\"titlez\" value=\"".$titlez."\">";
?>
在傳入數據保存到數據庫之前,您應該對傳入數據進行反斜槓()。另外,正如你發現的那樣,魔語引用非常糟糕。如果可以,然後關閉它們。 – GordonM 2012-02-02 08:14:45
我建議你將你的代碼轉換到PDO,使用準備好的語句,然後它會保護你免受MySQL注入。用PDO你不應該關心mysql_real_escape_string。 – 2018-02-28 13:41:51