PHP連mysql時出現問題:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
mysql 狀態:
show variables like 'colla%';+----------------------+-----------------+| Variable_name | Value |+----------------------+-----------------+| collation_connection | utf8_general_ci || collation_database | utf8_unicode_ci || collation_server | utf8_unicode_ci |show variables like 'char%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |
相關儲存過程代碼:
CREATE PROCEDURE `proc_str`(in strrr varchar(30) ,in useriid varchar(30))begindeclare i int;SET i=1;update imgupdate.bullentin set BoardPosition=replace(BoardPosition,concat(',',substring_index(strrr,',',1),','),',') where GroupUsers=useriid ;//replace過程出錯while(select (length(strrr) -length(substring_index(strrr,',',i))) )>0 doset i=i+1;update imgupdate.bullentin set BoardPosition=replace(BoardPosition,concat(',',(substring(substring_index(strrr,',',i),length(substring_index(strrr,',',i-1))+2)),','),',') where GroupUsers=useriid ;end while;select 1;end;
回複內容:
PHP連mysql時出現問題:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
mysql 狀態:
show variables like 'colla%';+----------------------+-----------------+| Variable_name | Value |+----------------------+-----------------+| collation_connection | utf8_general_ci || collation_database | utf8_unicode_ci || collation_server | utf8_unicode_ci |show variables like 'char%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |
相關儲存過程代碼:
CREATE PROCEDURE `proc_str`(in strrr varchar(30) ,in useriid varchar(30))begindeclare i int;SET i=1;update imgupdate.bullentin set BoardPosition=replace(BoardPosition,concat(',',substring_index(strrr,',',1),','),',') where GroupUsers=useriid ;//replace過程出錯while(select (length(strrr) -length(substring_index(strrr,',',i))) )>0 doset i=i+1;update imgupdate.bullentin set BoardPosition=replace(BoardPosition,concat(',',(substring(substring_index(strrr,',',i),length(substring_index(strrr,',',i-1))+2)),','),',') where GroupUsers=useriid ;end while;select 1;end;
在connect裡charset='utf8'