SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.08.2009 14:11:28

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

ПРОБЛЕМА С кодировкой в mysql

помогайте не получается скачал mysql с официального сайта установил, установил phpmyadmin, создал приложение написанное на (как не странноsmile на php ... в результате у меня работает приложение как надо а вот на сервере нет...

у меня стоит денвер кстати...

пишет крикозяблики я установил в базе кодировку cp1251_general_ci
на станице такая же кодировка и не получается....

пытался еще unicode т.е. utf-8 - utf8_unicode_ci

при cp1251_general_ci пишет ошибку т.е. вообще не работает
при utf8_unicode_ci записывает в базу крикозяблики...
(mysql была скачена с германского зеркала, ЕСЛИ ЭТО ИМЕЕТ ЗАНЧЕНИЕ)

Неактивен

 

#2 12.08.2009 16:14:04

DJK
Завсегдатай
Зарегистрирован: 09.08.2009
Сообщений: 32

Re: ПРОБЛЕМА С кодировкой в mysql

1. какая кодировка страницы используется в php
2. какая кодировка таблиц в БД

и думается мне что вами не указана кодировка для получения данных от БД -> mysql_query("SET NAMES 'cp1251'");
Если не указывать то данные выдаются в UTF8 и на страничке они будут выглядеть знаками ? и такими же знаками в базе

Неактивен

 

#3 12.08.2009 16:36:48

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

Почему-то есть ощущение, что <?php header("Content-type: text/html; charset=cp1251"); ?> решит проблему.

Но это я так, о предположениях. Когда пишете «не работает как надо» — пишите, что именно не работает.
Также не мешает описать способ, которым Вы переносите базу со своей машины на сервер. Ну и настройки
сервера тоже не мешает смотреть: ведь именно там не работает, а не у Вас на машинке.

Неактивен

 

#4 16.09.2009 14:54:03

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

что то ничего не понимаю не хочет работать и все....

в параметрах mySql в файле my.ini стоит

[mysql]
default-character-set=cp1251

[mysqld]
default-character-set=cp1251

внутри файла php стоит следующее (!сразу же после объявления соединения)

mysql_query("SET character_set_client='cp1251'");
mysql_query("SET character_set_results='cp1251'");
mysql_query("SET SESSION collation_connection = 'cp1251_general_ci'");
mysql_query("SET NAMES 'cp1251'");


на стороне mysql стоит кодировка cp1251_general_ci

,помогите пожалуйсто все сделал у меня на компьютере все работает у меня стоит денвер...

Неактивен

 

#5 16.09.2009 15:29:27

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

кстати со стороны сервера стоит windows 2000 но мне кажется это не важно...

Неактивен

 

#6 16.09.2009 19:01:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

А в чем проявляется «не хочет работать и все»? Настройки типично «под виндоус», что Вас
конкретно не устраивает в работе сервера?

Неактивен

 

#7 17.09.2009 08:51:34

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

при записи в базу он вот что пишет....


Ошибка запроса: Incorrect string value: '\xD0\x97\xD0\xB0\xD0\xBC...' for column 'id_VidRabot' at row 1 (код ошибки: 1366)



думаю тут все ясно...

Неактивен

 

#8 17.09.2009 15:13:54

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

Ну, мне тут ясно, что Вы пытаетесь записать строку в колонку, которая принимает
числа, и MySQL не может сконвертировать одно в другое... я бы на месте MySQL
сделал то же самое smile

Неактивен

 

#9 17.09.2009 17:32:08

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

нет это не число... это строка из русских символов... а что делоть то? вы подскажете?

Неактивен

 

#10 17.09.2009 18:01:39

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ПРОБЛЕМА С кодировкой в mysql

Поле `id_VidRabot` какой тип имеет?

Неактивен

 

#11 17.09.2009 19:06:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

И заодно show create table на эту табличку покажите, там, небось, latin1 написано...

Неактивен

 

#12 18.09.2009 09:41:44

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

нет и там все нормально на стороне Mysql кодировка стоит cp1251_general_ci

единственное что мне не нравиться в работе так это то что когда заходишь в phpMyAdmin... там выдает ошибку

Ошибка
Ответ MySQL: 

#1045 - Access denied for user 'root'@'localhost' (using password: YES)

phpMyAdmin не смог установить соединение с сервером MySQL. Проверьте хост, имя пользователя и пароль установленные в конфигурационном файле config.inc.php и удостоверьтесь, что они соответствуют данным полученным от администратора сервера MySQL.


...................
но рядом есть ссылка - "Открыть phpMyAdmin в новом окне"
через эту ссылку я и работаю...


вот таки (

Неактивен

 

#13 18.09.2009 09:48:34

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

система все равно работает не смотря на эту ошибку числа и английские буквы пишутся...

Неактивен

 

#14 18.09.2009 12:45:14

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

phpmyadmin — не лучший клиент, настраивать его тяжело, и многие не справляются.
Попробуйте воспользоваться стандартным консольным клиентом.

Васин и мой вопросы остаются в силе — вы на них не ответили.

Неактивен

 

#15 21.09.2009 09:19:33

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

хммммм...
>Поле `id_VidRabot` какой тип имеет?
имеет тип tinytext с кодировкой cp1251_general_ci....
> И заодно show create table на эту табличку покажите, там, небось, latin1 написано...

я создавал таблицу в phpMyAdmin...

..........................................
я не скажу что я профи просто, то над чем я щас работаю, единичный случай в моей жизни, больше я не буду писать инет приложения...
как мне кажется

Неактивен

 

#16 21.09.2009 12:03:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

Делать из id блобовое поле... я боюсь представить, что у Вас там за база...
В любом случае, я почти уверен в том, что поле там latin1.

Даже если Вы создавали таблицу в phpMyAdmin — она все равно таблица,
и все равно SHOW CREATE TABLE tablename будет работать.

Неактивен

 

#17 21.09.2009 15:22:39

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

MyphpAdmin странный какой то сделал запрос своей базы:

SHOW CREATE TABLE DATABASE


выдал следующую ошибку....

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1

SHOW CREATE TABLE DATABASE

Неактивен

 

#18 21.09.2009 15:30:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ПРОБЛЕМА С кодировкой в mysql

Нужно
SHOW CREATE TABLE tablename
где tablename - имя таблицы.

Неактивен

 

#19 21.09.2009 16:02:57

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

Если имя таблицы database, то его надо заключить в обратные кавычки (там, где ё на клавиатуре),
т.к. это ключевое слово.

Неактивен

 

#20 22.09.2009 12:58:11

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

я перепутал... база database а таблица KARTA....
вот запрос... может быть все ужасно, но так надо для производства...

Хост: localhost
База данных: database
Время создания: Сен 22 2009 г., 12:55
Создан: phpMyAdmin 3.2.0.1 / MySQL 5.1.37-community
SQL-запрос: SHOW CREATE TABLE `KARTA`;
Строки: 1


CREATE TABLE `karta` (
`id_Nomer` int(10) unsigned NOT NULL,
`id_Date` tinytext NOT NULL,
`id_Time` varchar(20) NOT NULL,
`id_NomerIBM` tinytext NOT NULL,
`id_FPolizovatel` tinytext NOT NULL,
`id_IPolizovatel` tinytext NOT NULL,
`id_OPolizovatel` tinytext NOT NULL,
`id_OtdelPolizovatelja` tinytext NOT NULL,
`id_VidRabot` tinytext NOT NULL,
`id_Opicanie` tinytext NOT NULL,
`id_ChtoCdelano1` tinytext NOT NULL,
`id_Neicpravnocti` tinytext NOT NULL,
`id_ChtoCdelano2` tinytext NOT NULL,
`id_Prichina` tinytext NOT NULL,
`id_Podrobnocti` tinytext NOT NULL,
`id_KtoCdelal` tinytext NOT NULL,
`id_Vipolnenie` varchar(20) NOT NULL,
`id_put_file` tinytext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251

Неактивен

 

#21 22.09.2009 16:46:32

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

Хм, тогда это очень-очень странно. Теоретически все должно работать правильно.
На сервере стоит MySQL той же версии, что у Вас локально? Нет ли там установок
игнорировать клиентскую кодировку? На сервере у таблицы та же кодировка, что
у Вас локально? Попробуйте выполнить этот запрос на нем?

Посмотреть текущие значения кодировки можно, выполнив запрос
show variables like '%char%' — для client и для connection должно стоять cp1251.

Неактивен

 

#22 23.09.2009 09:04:12

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

да вы правы тут все не так как надо...

------------------------------------------

Результат SQL-запроса
Хост: localhost
База данных:
Время создания: Сен 23 2009 г., 09:08
Создан: phpMyAdmin 3.2.0.1 / MySQL 5.1.37-community
SQL-запрос: show variables like '%char%';
Строки: 8

Variable_name                 Value 
character_set_client          utf8
character_set_connection  utf8
character_set_database    cp1251
character_set_filesystem   binary
character_set_results        utf8
character_set_server        cp1251
character_set_system       utf8
character_sets_dir            C :\Server\MySQL\share\charsets\

---------------------------------------------------

но  как исправить эти значения... про эти настройки нигде в книгах не написано... по крайней мере я не видел...

Неактивен

 

#23 23.09.2009 12:59:14

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

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

Неактивен

 

#24 23.09.2009 16:40:46

Иван
Завсегдатай
Зарегистрирован: 07.08.2009
Сообщений: 48

Re: ПРОБЛЕМА С кодировкой в mysql

а это как???  в php код положить запрос??? но он выполняется на стороне сервера так и задумано была php... не понял короче если честно как это сделать...

да кстати я менял кодировки в таблице запросом

SET NAMES cp1251;

не получилось, если есть у вас возможность, то как поменять переменные???

character_set_results
character_set_client       
character_set_connection

Неактивен

 

#25 23.09.2009 17:58:35

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ПРОБЛЕМА С кодировкой в mysql

Да, любой запрос выполняется на стороне сервера. И нужно написать в php, да.

К сожалению, чтобы понять, где именно что-то не так — прийдется экспериментировать.
Кстати, Вы точно уверены, что на сервере структура таблица та же самая, включая
кодировки? phpMyAdmin Вы подключаете к серверу ведь?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson