|
|
|
| Народ, прописыавя вот такой код в Mysql
insert into table set
name="Вася",
sname="Пупкин",
a_litle_story="Текст керилицей длинной под tinytext";
|
получаю ошибку
incorrect string value:'\x81\xAE\xA3\xA4\xA0\xAD'for column 'name' at row 1
default charset для таблице у меня cp1251почему ошбика вылетает не знаю,хэлп плз. | |
|
|
|
|
|
|
|
для: Богданн
(15.06.2011 в 18:26)
| | Сразу после установки соединения с MySQL задается кодировку соединения?
<?php
mysql_query("SET NAMES cp1251");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(15.06.2011 в 18:54)
| | я это прописываю в командной утилите mysql | |
|
|
|
|
|
|
|
для: Богданн
(15.06.2011 в 19:28)
| | Там кодировка по умолчанию cp866; Попробуйте после установки соединения выполнить запрос
это должно позволить добавлять данные корректно.
PS Кстати, я заметил вы пользуетесь консольным mysql, это намерено или вынуждено? Не хотите перейти на более удобный клиент, например, phpMyAdmin? | |
|
|
|
|
|
|
|
для: cheops
(15.06.2011 в 20:12)
| | Это преднамерено, просто когда я начал учить пхп, а конкретно его взаимодействие с MYSQL,то увидел что взаимодействие пхп с MYSQL осуществляеться через функции php, языком sql,а командная строка как раз та среда где привыкаеш к языку sql.
В phpmyadmin я перейду как только почуствую себя уверено в sql,ведь phpmyadmin это автоматизация работы. | |
|
|
|
|
|
|
|
для: cheops
(15.06.2011 в 20:12)
| | Спасибо, помогло только я cp1251 поставил, а что это за команда set names??? это один из наборов спец команд регулируещих настройки mysql?? | |
|
|
|
|
|
|
|
для: Богданн
(16.06.2011 в 12:29)
| | >Спасибо, помогло только я cp1251
Хм... странно, тогда перед использованием mysql, нужно консоль переключать в win-1251 при помощи команды
>что это за команда set names??? это один из наборов спец команд регулируещих настройки
>mysql??
Она регулирует кодировку в которой будут обмениваться клиент и сервер. Т.е. у вас на сервере данные могут лежать в какой угодно кодировке, например, UTF-8, присоединяясь к серверу, вы при помощи SET NAMES говорите, хочу обмениваться данными в кодировке, например, Windows-1251. После этого сервер, при получении от вас данных автоматически перекодирует их из Windows-1251 в UTF-8, а при отправке вам данных наоборот из UTF-8 в Windows-1251. Только нужно каждый раз сообщать ему, в какой кодировке вы хотите общаться, иначе он будет работать в latin1 (MySQL родом из Швеции). | |
|
|
|
|
|
|
|
для: cheops
(16.06.2011 в 12:37)
| | Тоесть, каждый раз после соидинения с mysql надо прописывать set names cp2151,а что б это по-умалчанию ставилось нельзя настроить??
А кодировку для базы данных,таблици и столбца тоже надо ставить или можно прописать set names cp1251 а для базы данных оставить latin1?? | |
|
|
|
|
|
|
|
для: Богданн
(16.06.2011 в 12:47)
| | >Тоесть, каждый раз после соидинения с mysql надо прописывать set names cp2151,а что б это
>по-умалчанию ставилось нельзя настроить??
Вы же mysql_connect() каждый раз пишите, когда хотите установить соединение, почему бы там же не устанавливать кодировку :) Как правило это один файл на все приложение и одна дополнительная строка? Да нужно писать каждый раз, или перекомпилировать MySQL (может сейчас и настройка какая-то есть, но лучше не полагаться на неё - везде разные сервера, настройки у них разные, чтобы ваше приложение было устойчивым, лучше всякий раз явно указывать кодировку). | |
|
|
|
|
|
|
|
для: cheops
(16.06.2011 в 13:04)
| | спасибо | |
|
|
|