明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

MySQL中對于查詢字符集不匹配的問題處理

[摘要]這篇文章主要給大家介紹了關(guān)于mysql查詢字符集不匹配問題的解決方法,文中通過示例代碼給大家介紹的非常詳細(xì),對同樣遇到這個(gè)問題的朋友們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧...
這篇文章主要給大家介紹了關(guān)于mysql查詢字符集不匹配問題的解決方法,文中通過示例代碼給大家介紹的非常詳細(xì),對同樣遇到這個(gè)問題的朋友們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

發(fā)現(xiàn)問題

最近在工作中遇到一個(gè)問題,MySQL數(shù)據(jù)庫建表的時(shí)候采用的是latin的字符集,而網(wǎng)頁中查詢的是utf-8,當(dāng)輸入頁面輸入中文,然后再數(shù)據(jù)庫中查詢的時(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 中找到了對這個(gè)數(shù)據(jù)庫,以及數(shù)據(jù)表中進(jìn)行更改字符集的方法。


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的字符集了,就不會(huì)在用中文輸入時(shí)候,查詢數(shù)據(jù)庫中的內(nèi)容產(chǎn)生錯(cuò)誤了。

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é)

以上就是MySQL中關(guān)于查詢字符集不匹配的問題解決的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。