Переход с mysql 3 на 4

Главные вкладки

Аватар пользователя kwinto kwinto 4 сентября 2005 в 1:40

Коллеги, помогите советом!
Пытаюсь перетащить уже работающий сайт с mysql 3 на mysql 4.
База данных создается через панель. До создания таблиц выполнил:
alter database character set UTF8 col...
После чего произвел импорт из файла с дампом, полученного из mysql 3 версии. Результат ужасен, можете убедится здесь: http://kwinto.msk.ru/ - это временный сайт.
Посмотрел, что находится в таблицах базы - некоторые буквы отображаются в виде квадратиков. например - "ш"
В .htaccess стоит:
CharsetRecodeMultipartForms off
charsetdisable on
AddDefaultCharset utf-8

Следую некоторым советам из некоторых топиков, пробовал модифицировать db_connect - добавлял строку mysql_query('SET CHARACTER SET utf8;',$connection); - получал default тему drupal с кучей ошибок над шапкой и кракозябрами вместо текста, хотя переводы строк отображаются нормально

Заранее благодарен

Комментарии

Аватар пользователя Nick Nick 6 сентября 2005 в 2:34

Сделай еще altet database default charset utf8
Перед импорта дампа.

А строка mysql_query("SET CHARACTER SET utf8") вот так выглядит.

Аватар пользователя kwinto kwinto 6 сентября 2005 в 22:05

Nick, спасибо за ответ!
а в чем разница между
altet database default charset utf8
и
alter database character set UTF8 ?
В DEFAULT? - я так понял, что это необязательно - слово исключительно для некой совместимости. Я не прав?
А для mysql_query(“SET CHARACTER SET utf8”) $connection не нужно? Или дело в том, что не нужно ";" добавлять?

Аватар пользователя Nick Nick 6 сентября 2005 в 23:18

Quote:
В DEFAULT? - я так понял, что это необязательно - слово исключительно для некой совместимости. Я не прав?

Нет. Дело в том, что в mysql помимо кодировки БД, есть еще кодировка таблицы, и, мне тут сказали (сам я на это не натыкался), даже кодировка столбца. Зачем весь этот зоопарк - я не знаю, знаю лишь, что он создает вагончик проблем... Вот default обозначает, дефолтная для всех вновь созданных таблиц...

Мне кажется, что вообще ни к чему было давать пользователю выбирать в какой кодировке хранить информацию. Сделать, чтобы все хранилось в utf8 или даже utf16 (для большей совместимости) и забить это в код гвоздями, и дать пользователю рычаг, которым бы он мог управлять кодировкой ввода/вывода. И обязательно у этого рычага должно быть положение "сохранить как есть" и "отдать как есть" (без перекодировки, как хранится в БД).

Quote:
Или дело в том, что не нужно “;”

Именно.
http://ru.php.net/manual/en/function.mysql-query.php :
Quote:
query

A SQL query

[i]The query string should not end with a semicolon.[/i]