2015-11-16 25 views
0

我有以下更新查詢,如果輸入簡單文本,但如果我嘗試輸入帶撇號逗號(示例文本下面給出)的數據工作正常,我得到語法錯誤。任何人都可以請告訴如何處理這個問題,因爲我需要保存,可能有撇號的逗號也撇號文本沒有得到更新數據庫

示例文本的文本:Lorem lorem's Ipsum Ipsum's

$myabout = htmlentities($_REQUEST['about']); 
$myage = htmlentities($_REQUEST['age']); 

$sql1="UPDATE `register` set age = '".$myage."', about = '".$myabout."' WHERE id='".$userid."' "; 
if(!mysqli_query($con,$sql1)) 
    { 
     echo "Error updating record: " . mysqli_error($con); 
    } 
+0

您需要轉義撇號以將其標記爲數據的一部分。或者,你知道,使用參數化查詢來避免所有這些以及更多。 –

+0

您可以使用帶參數的準備好的查詢,或者使用addshlashes函數 – Kobi

回答

0

您可以將addslashes功能或在該mysql_real_escape_string功能你連接到你的查詢中的變量(例如$ myage,$ myabout,$ userid等),並且這將會包含在這些變量中的引號,撇號和大多數其他有問題的字符。有關更多信息,請參閱 mysql_real_escape_string VS addslashes

但是,更好(更安全)的解決方案是使用prepared statements