Я получил эту ошибку:MySQLiQuery_Exception 'с сообщением' Illegal смеси (сортировки latin1_swedish_ci, неявные) и (utf8_general_ci, сжимаемого) - с PHP5
Fatal error: Uncaught exception 'MySQLiQuery_Exception' with message 'Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=': select id from 'addresses' where 'shiptozip'='13000' and 'shiptostreet'='Františka Křížka'
Как вы можете видеть, я пытаюсь получить идентификатор из адресов таблицы.
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
mysql> show variables like 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
где таблица 'адрес' также имеет utf8_general_ci
и utf8
. Наверное, это связано с запросом Františka Křížka, так как это нормально с другими запросами. Server_collation обычно был latin_swedish_ci
, но я думаю, что мне удалось изменить все это сейчас (как видно из приведенных выше таблиц). Заранее спасибо.
Да, все поля были все еще на latin1. Я узнаю, как изменить его для всех полей. Благодаря! – Ian
Последний комментарий: запрос 'alter table addresses convert to character set utf8;' преобразует все столбцы в таблицу по умолчанию. – Ian