mysql + utf8

Модератор: Модераторы разделов

Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

mysql + utf8

Сообщение Asgard »

Имеется mysql 4.1.14

Код: Выделить всё

+----------------------+-----------------+
| Variable_name       | Value             |
+----------------------+-----------------+
| collation_connection| utf8_general_c |
| collation_database  | utf8_general_c |
| collation_server     | utf8_general_c |
+----------------------+-----------------+


создаю таблицу

Код: Выделить всё

CREATE TABLE tes (
id int NOT NULL auto_increment,
name varchar(55) NOT NULL,
PRIMARY KEY  (id)) DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci


далее с помощью php-скрипта через веб-интерфейс вставлю в таблицу данные

Код: Выделить всё

...
f(!empty($_POST['name']))
  mysql_query("INSERT INTO test (name) values('".$_POST['name']."' )") or die(mysql_error());
...


например, я ввожу в таблицу 2 слова 'идиотизм' и 'Идиотизм'. Простой запрос

Код: Выделить всё

SELECT * FROM test WHERE name LIKE 'и%'

в результате на выходе будет только первое слово, хотя должно выдать оба. Я недоумеваю, какого чёрта ведётся регистро-зависимый поиск, когда он должен быть регистро-независимым.

Помогите. Уже 4 часа над этой чушью парюсь :(
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: mysql + utf8

Сообщение Asgard »

Вопрос отпал. Кому интересно, всё должно вылядеть так:

Код: Выделить всё

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+

+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                            |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_results    | NULL                            |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+


кодировка на странице должна быть utf8
перед каждым запросом нужно выполнить:

Код: Выделить всё

mysql_query("SET CHARACTER SET utf8") or die(mysql_error());
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
charlie
Сообщения: 104

Re: mysql + utf8

Сообщение charlie »

Ну или

Код: Выделить всё

mysql_query('SET NAMES utf8') or die(mysql_error())
Из университета Беркли вышли два главных продукта: LSD и BSD.
Ну было просто рулез!...
Спасибо сказали: