關(guān)于mysql查詢字符集不匹配問題的解決方法
發(fā)現(xiàn)問題
最近在工作中遇到一個問題,MySQL數(shù)據(jù)庫建表的時候采用的是latin的字符集,而網(wǎng)頁中查詢的是utf-8,當(dāng)輸入頁面輸入中文,然后再數(shù)據(jù)庫中查詢的時候,就會報出 ER_CANT_AGGREGATE_2COLLATIONS: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
這個錯誤,所以在stackover flow 中找到了對這個數(shù)據(jù)庫,以及數(shù)據(jù)表中進行更改字符集的方法。
SET collation_connection = 'utf8_general_ci'
注意:要替換下面兩句中替換成你的數(shù)據(jù)庫名稱和你的數(shù)據(jù)表名稱
ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
這樣就保證了數(shù)據(jù)庫也為utf-8的字符集了,就不會在用中文輸入時候,查詢數(shù)據(jù)庫中的內(nèi)容產(chǎn)生錯誤了。
reference:Illegal mix of collations MySQL Error
在PHP中設(shè)置數(shù)據(jù)庫的字符集為utf-8
mysqli_set_charset($dbc,'utf8');
在html中添加顯示utf-8的meta就可以了
<meta charset="utf-8">
總結(jié)
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對本站的支持。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。