這一個讓我難住。當我嘗試將某些內容保存到包含撇號(')的數據庫時,它將保存該語義,直到此時爲止,此後不會。例如;MySQL'不保存句子'
說我試圖挽救這一點:報告詳細蒂姆·庫克在蘋果的變化,是好還是壞»
它節省:報告詳細蒂姆·庫克
它保存到數據庫正常,但之前只是一切在「
我的代碼:
if(isset($_POST['submit']))
{
global $db, $db_table_prefix;
$origRLTitle = $_POST['RLTitle'];
$origRLURL = $_POST['RLURL'];
$origRLUserID = $_POST['user-id'];
$RLTitle = mysql_real_escape_string($origRLTitle);
$RLURL = mysql_real_escape_string($origRLURL);
$RLUserID = mysql_real_escape_string($origRLUserID);
if(strlen($RLTitle)>0 && strlen($RLURL)>0 && strlen($RLUserID)>0)
{
mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db("sf") or die(mysql_error());
mysql_query("INSERT INTO `ReadLater` (Title, URL, User_ID) VALUES ('".$RLTitle."', '".$RLURL."', '".$RLUserID."')");
echo "Saved";
}
}
任何幫助,爲什麼它可能無法正確保存?我試過mysql_real_escape_string,但(如果我正確使用它),似乎並沒有工作。
附註:什麼是最好的方式來確保上述表格免受攻擊? 。
更新它也這樣做了「,以及
你可以用'用htmlspecialchars(「someValue中」,ENT_QUOTES,「UTF-8」)'逃避所有的報價。 – inhan
快速的問題,可能完全沒有意義。你不是從單詞或任何東西複製粘貼到Post Vars中嗎?你是在身體上打字嗎? –
請停止使用古老的'mysql_ *'函數編寫新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這裏是一個很好的PDO相關教程](http://goo.gl/vFWnC)。 – orourkek