我創建頁面,其中用戶輸入commnets和評論插入到數據庫(MySQL)。這些註釋可以包含單引號,雙引號或任何特殊字符。爲了逃避這些我用下面的代碼mysql_real_escape_string無法轉義特殊字符作爲文本來自文本編輯器
$str = mysql_real_escape_string($str,$conn);
這裏$康恩被有效連接資源,$ str是從textarea的
字符串內容能正常工作並返回完美逃脫字符串,我可以插入到數據庫中。但是,如果用戶鍵入他/她的意見到像OpenOffice的作家或MSWORD,並從它使用該文本的文本編輯器,發生並給出錯誤如下錯誤,而在DB插入
Incorrect string value: '\x93testi...' for column 'commnets' at row 1
我認爲這正在發生,因爲單來自文本編輯器(openoffice,msword)的文本中的雙引號不能正確轉義。那麼如何轉義它才能將其插入到數據庫中。請幫我
在此先感謝.....
你如何構建查詢? – Gumbo 2012-01-10 11:00:59
用數據庫創建的字符集是什麼?我記得當數據庫不允許8位字符時有類似的問題。 – 2012-01-10 11:01:24
您已省略的重要信息:encoding(UTF-8,Latin1,ASCII ...),原始字符串,轉義字符串和SQL查詢。 '0x93'是Latin-1中的'''字符,它在SQL語法中沒有任何特殊含義。 – 2012-01-10 11:03:58