關於mysql查詢字符集不匹配問題的解決方法

zybing發表於2021-09-09

發現問題

最近在工作中遇到一個問題,MySQL資料庫建表的時候採用的是latin的字符集,而網頁中查詢的是utf-8,當輸入頁面輸入中文,然後再資料庫中查詢的時候,就會報出 ER_CANT_AGGREGATE_2COLLATIONS: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 這個錯誤,所以在stackover flow 中找到了對這個資料庫,以及資料表中進行更改字符集的方法。

?

1 SET collation_connection = 'utf8_general_ci'

注意:要替換下面兩句中替換成你的資料庫名稱和你的資料表名稱

?

123 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

這樣就保證了資料庫也為utf-8的字符集了,就不會在用中文輸入時候,查詢資料庫中的內容產生錯誤了。

reference:Illegal mix of collations MySQL Error

在PHP中設定資料庫的字符集為utf-8

?

1 mysqli_set_charset($dbc,'utf8');

在html中新增顯示utf-8的meta就可以了

?

1 meta charset="utf-8">

總結

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對指令碼之家的支援。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2805035/,如需轉載,請註明出處,否則將追究法律責任。

相關文章