發(fā)現(xiàn)問題
最近在工作中遇到一個(gè)問題,MySQL數(shù)據(jù)庫(kù)建表的時(shí)候采用的是latin的字符集,而網(wǎng)頁中查詢的是utf-8,當(dāng)輸入頁面輸入中文,然后再數(shù)據(jù)庫(kù)中查詢的時(shí)候,就會(huì)報(bào)出 ER_CANT_AGGREGATE_2COLLATIONS: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
這個(gè)錯(cuò)誤,所以在stackover flow 中找到了對(duì)這個(gè)數(shù)據(jù)庫(kù),以及數(shù)據(jù)表中進(jìn)行更改字符集的方法。
SET collation_connection = 'utf8_general_ci'
注意:要替換下面兩句中替換成你的數(shù)據(jù)庫(kù)名稱和你的數(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ù)庫(kù)也為utf-8的字符集了,就不會(huì)在用中文輸入時(shí)候,查詢數(shù)據(jù)庫(kù)中的內(nèi)容產(chǎn)生錯(cuò)誤了。
reference:Illegal mix of collations MySQL Error
在PHP中設(shè)置數(shù)據(jù)庫(kù)的字符集為utf-8
mysqli_set_charset($dbc,'utf8');
在html中添加顯示utf-8的meta就可以了
<meta charset="utf-8">
總結(jié)
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選