Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Кодировка базы mysql


Автор: EasyTask 15.9.2010, 13:15
Всем привет, я новичок в программировании, поэтому за вопрос прошу сильно не пинать. 
Ситуация такая: 

Я создал базу MySQL используя сравнение "utf8_general_ci". Первая проблема с которой я столкнулся - в базе кириллица отображается нормально, но при выводе на сайт я вижу вместо букв знаки "?". Немного погуглив я нашел ответ:

Дописать в файл соединения с БД строки:
Код

    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'"); 

Теперь стало все работать нормально, но это же лишние тормоза для системы? Почему не работает без этого кода? Я так понимаю потому что база должна быть в формате "cp1251". На другом сайте у меня как раз сделано так, но там другая проблема. В базе я вижу примерно это: "¡Ð¸Ð»Ð¸Ð½ÑÐºÐ¸Ð¹ АлексаÐ", а на сайт выводятся нормальные буквы. Помогите правильно создать базу что бы и PHPMyAdmin нормально читал ее и на сайт без дополнительного кода выводилось. 

Еще один вопрос. Погуглив какой тип таблицы лучше MyISAM или InnoDB нашел ответ - в тех таблицах которые работают в основном на INSERT лучше MyISAM. Создал две базы такими запросами:

Код

CREATE TABLE `pl`.`ctable` (
`id` TINYINT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 50 ) NOT NULL ,
`body` TEXT NOT NULL ,
`cat` TINYINT( 4 ) NOT NULL ,
`subcat` BOOLEAN NOT NULL ,
`subid` TINYINT( 4 ) NOT NULL ,
`url` VARCHAR( 50 ) NOT NULL
) ENGINE = MYISAM ;

 `id` TINYINT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`catid` TINYINT( 4 ) NOT NULL ,
`name` VARCHAR( 25 ) NOT NULL ,
UNIQUE (
`catid`
)
) ENGINE = MYISAM ;


И теперь у меня така проблема:
http://i053.radikal.ru/1009/b3/41361f200d97.jpg

То есть по всей видимости по дефолту стоит InnoDB, а я везде в ручную пишу MyISAM чревато ли это какими то последствиями?

Автор: gta4kv 15.9.2010, 13:46
http://phpfaq.ru/charset

Добавлено через 59 секунд
Цитата

но это же лишние тормоза для системы?

Не надо искать оптимизацию там, где она не нужна (с)

Автор: EasyTask 15.9.2010, 14:50
Большое спасибо за ваш совет!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)