我有一個簡單的MySQL查詢:PHP/MySQL的選擇和特殊字符
$query = addslashes($_REQUEST['query']);
$sql = mysql_query ("SELECT * FROM countries WHERE name LIKE '%{$query}%'");
它適用於任何$查詢,除非它有它特殊字符。
假設我在尋找「奧蘭羣島」或「科特迪瓦」,它不會找回任何東西。
我也嘗試沒有addslashes,但它只是不會改變任何東西。
謝謝你的幫助。
編輯
這是我的變量設置在MySQL:
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | utf8
character_set_server | latin1
character_set_system | utf8
的字符集服務器是我無法改變。它似乎是由我的主機設置的。 任何嘗試改變這一點都會給我一個信息,告訴我我沒有超級權限允許我這樣做。
試試這個:-http ://stackoverflow.com/questions/18455406/how-to-extract-data-from-mysql-that-contains-special-characters或http://stackoverflow.com/questions/10578694/mysql-selecting-string-with -multi-special-characters在搜索時替換這些字符 – Divya
請檢查輸入字符串和數據庫編碼是否爲sa我(顯然我建議UTF-8) –
@洛倫佐馬爾孔:我編輯了我的問題。這可能會給你一些額外的信息。 – Baylock