1673 читателя, 75 постов
Администрация
Модераторы
Все, что касается СУБД MySQL. Настройка и администрирование сервера, оптимизация, практика использования.
--default-charset), а начиная с версии 4.1 разработчики добавили возможность определения кодировки на разных уровнях иерархии СУБД (для всего сервера, БД, таблиц, столбцов).--with-charset и --with-collation: ./configure --with-charset=cp1251 --with-collation=cp1251_general_ci
--character-set-server и --collation-server: mysqld --character-set-server=cp1251 --collation-server=cp1251_bin
CREATE DATABASE dbname DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin;
CREATE TABLE tblname ( col INT ) DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin;
CREATE TABLE tblname (
column1 varchar(255),
column2 varchar(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci
) DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin;
SHOW CREATE:mysql > SHOW CREATE TABLE tree_nodes;
| tree_nodes | CREATE TABLE `tree_nodes` (
...
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin |
character_set_client - указывает, в какой кодировке будут поступать данные от клиента;character_set_connection - указывает, в какую кодировку следует преобразовать данные полученые от клиента перед выполнением запроса;collation_connection - указывает, каким образом сравнивать между собой строки в запросах;character_set_results - указывает серверу не необходимость перекодировать результаты запроса в определенную кодировку перед выдачей их клиенту.mysql_query("SET character_set_client='cp1251'");
mysql_query("SET character_set_connection='cp1251'");
mysql_query("SET character_set_results='cp1251'");Если запрос и данные в БД находятся в одинаковой кодировке, а перекодировка результата не требуется, то вместо установки character_set_client, character_set_connection, character_set_results достаточно выполнить:mysql_query("SET NAMES 'cp1251'"); Для того чтобы посмотреть значения этих переменных установленные по умолчанию можно воспользоваться оператором SHOW VARIABLES:SHOW VARIABLES LIKE 'character_set%';
комментарии (10)
не мучаясь с изменением стартаповых скриптов сервера
для утф-8 выглядит примерно так
[mysqld]
init-connect="SET NAMES UTF8"
default-character-set=utf8
character-set-server=utf8
default-collation=utf8_general_ci
collation-server=utf8_general_ci
Сорри если не в тему, но может, кто не сталкивался
Можете прямо на php написать что нужно? у меня код для соединения с базой такой:
Куда нужно написать mysql_query("SET NAMES 'cp1251'");?
Казнить нельзя помиловать. ;-)