Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не восстанавливается дамп базы данных
 
 автор: FOX2011   (05.02.2012 в 16:54)   письмо автору
246.4 Кб
 
 

При импортировании дампа базы данных в полях появляются знаки : "????? ?????"
В чём тут дело?..
При создании бд указал utf8_unicode_ci....

  Ответить  
 
 автор: cheops   (05.02.2012 в 17:53)   письмо автору
 
   для: FOX2011   (05.02.2012 в 16:54)
 

В самом дампе при просмотре его текстовым редактором кодировка нормальная? Или тоже знаки вопроса?

  Ответить  
 
 автор: fox2011   (05.02.2012 в 18:12)   письмо автору
 
   для: cheops   (05.02.2012 в 17:53)
 

Нормально всё отображается, русский читается!...

  Ответить  
 
 автор: cheops   (05.02.2012 в 18:15)   письмо автору
 
   для: fox2011   (05.02.2012 в 18:12)
 

1. Дамп в кодировке UTF8?
2. А что конкретно в начале дампа прописано?
3. Попробуйте явно прописать
SET NAMES utf8;
ситуация не меняется?

  Ответить  
 
 автор: fox2011   (05.02.2012 в 18:28)   письмо автору
 
   для: cheops   (05.02.2012 в 18:15)
 

1. не знаю в какой дамп кодировке. где это можно посмотреть?

2. При открытии дампа тестовым редактором вначале прописано
phpMyAdmin SQL Dump, версия, сайт -http://www.phpmyadmin.net, хост, время создания!
Кодировки я тут не вижу!

3. Попробуйте явно прописать set names utf8? где это прописывается - напишите побробнее?

  Ответить  
 
 автор: cheops   (05.02.2012 в 18:29)   письмо автору
 
   для: fox2011   (05.02.2012 в 18:28)
 

Прямо в самом начале SQL-дампа, создайте строку SET NAMES utf8; и поставьте Enter.

  Ответить  
 
 автор: fox2011   (05.02.2012 в 21:59)   письмо автору
 
   для: cheops   (05.02.2012 в 18:29)
 

Теперь в полях, где было "?????? ???" ничего не отображается, хотя заведомо там русский текст есть!...

  Ответить  
 
 автор: cheops   (05.02.2012 в 22:05)   письмо автору
 
   для: fox2011   (05.02.2012 в 21:59)
 

Можете прикрепить кусочек дампа (именно в виде файла, чтобы можно было воспроизвести ситуацию)?

  Ответить  
 
 автор: fox2011   (06.02.2012 в 01:15)   письмо автору
164.4 Кб
 
   для: cheops   (05.02.2012 в 22:05)
 

Прикрепил!...

  Ответить  
 
 автор: cheops   (06.02.2012 в 10:49)   письмо автору
 
   для: fox2011   (06.02.2012 в 01:15)
 

У вас дамп в кодировке Windows-1251, т.е. вместо
SET NAMES utf8;
вам нужно писать
SET NAMES cp1251;

  Ответить  
 
 автор: fox2011   (06.02.2012 в 13:28)   письмо автору
 
   для: cheops   (06.02.2012 в 10:49)
 

а где это видно, что он в кодировке 1251?

теперь ругается на тип 'TYPE=MyISAM' в строке 28

#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 'TYPE=MyISAM' at line 28

  Ответить  
 
 автор: cheops   (06.02.2012 в 14:16)   письмо автору
 
   для: fox2011   (06.02.2012 в 13:28)
 

>а где это видно, что он в кодировке 1251?
В текстовом редакторе, который позволяет переключать кодировки - правильно русский текст отображается только в Windows-1251

>теперь ругается на тип 'TYPE=MyISAM' в строке 28
Замените ключевое слово TYPE на ENGINE. TYPE - устарел и в новых версиях MySQL помоему уже исключен.

  Ответить  
 
 автор: fox2011   (06.02.2012 в 15:24)   письмо автору
 
   для: cheops   (06.02.2012 в 14:16)
 

Всё равно та же ситуация, теперь обговорю более подробнее, может что-то не то указываю
1. При создании бд site в phpmyadmin указываю имя бд - site , MySQL connection collation - utf8-unicode-ci....
2. при импортировании дампа базы данных site.sql в поле Character set of the file выбрано utf8!

В полях с русским текстом появляется "? ??? ?? ???? ?? ??"

  Ответить  
 
 автор: cheops   (06.02.2012 в 15:34)   письмо автору
 
   для: fox2011   (06.02.2012 в 15:24)
 

>при импортировании дампа базы данных
Вы пользуетесь разделом Импорт, а не просто выполняя содержимое раздела файла в SQL?

  Ответить  
 
 автор: fox2011   (06.02.2012 в 15:48)   письмо автору
 
   для: cheops   (06.02.2012 в 15:34)
 

да импортирую...
а как выполнить файл в sql?

  Ответить  
 
 автор: cheops   (06.02.2012 в 15:57)   письмо автору
 
   для: fox2011   (06.02.2012 в 15:48)
 

Просто откройте его в редакторе, так, чтобы русский текст был русским текстом, скопируйте содержимое в буфер обмена. Затем идите в раздел SQL, вставляйте в текстовую область содержимое файла из буфера обмена и нажимайте OK (метод плохо работает если дамп имеет объемы десятки мегабайт, а для мелких дампов - самый простой способ).

  Ответить  
 
 автор: fox2011   (06.02.2012 в 16:14)   письмо автору
 
   для: cheops   (06.02.2012 в 15:57)
 

Выдает следующую ошибку:

MySQL said: Documentation
#1366 - Incorrect string value: '\xD0\xAF \xD1\x82\xD0...' for column 'name' at row 1

  Ответить  
 
 автор: cheops   (06.02.2012 в 16:17)   письмо автору
 
   для: fox2011   (06.02.2012 в 16:14)
 

А текст точно по-русски выглядит (без искажений и крокозябликов), когда вы его копируете?

  Ответить  
 
 автор: fox2011   (06.02.2012 в 16:22)   письмо автору
 
   для: cheops   (06.02.2012 в 16:17)
 

Да...
Я вам ранее прикреплял дамп базы данных mysite.sql попробуйте пожалуйста у себя это сделать!...

  Ответить  
 
 автор: cheops   (06.02.2012 в 16:33)   письмо автору
 
   для: fox2011   (06.02.2012 в 16:22)
 

У меня абсолютно все штатно и все по-русски... тут возможно дело в кодировке по умолчанию, для базы данных, вам лучше utf8-unicode-ci заменить на cp1251_general_ci или задать кодировку по умолчанию для каждой таблице в операторах CREATE TABLE. У меня на сервере cp1251 выставлена в качестве кодировки по умолчанию для всего сервера, поэтому вероятно и проблем никаких нет.

  Ответить  
 
 автор: fox2011   (06.02.2012 в 16:38)   письмо автору
 
   для: cheops   (06.02.2012 в 16:33)
 

Выдает ошибку
Error

SQL query:

#
# Дамп данных таблицы `answer`
#
INSERT INTO `answer`
VALUES ( 1, 'Я только начинаю программировать', 1, 3, 1 ) ;

MySQL said: Documentation
#1366 - Incorrect string value: '\xD0\xAF \xD1\x82\xD0...' for column 'name' at row 1

  Ответить  
 
 автор: cheops   (06.02.2012 в 16:46)   письмо автору
 
   для: fox2011   (06.02.2012 в 16:38)
 

1) Дело происходит на локальной машине или на арендуемом сервере в Интернет?
2) Если дело происходит локально, подключено ли в PHP расширение mb_string?

  Ответить  
 
 автор: fox2011   (06.02.2012 в 16:48)   письмо автору
 
   для: cheops   (06.02.2012 в 16:46)
 

локально
где это посмотреть?

  Ответить  
 
 автор: cheops   (06.02.2012 в 17:02)   письмо автору
 
   для: fox2011   (06.02.2012 в 16:48)
 

На главной странице phpMyAdmin нет предупреждения о том, что расширение mb_string отключено? Кроме того, можно посмотреть какие расширения подключены в php.ini или в отчете функции phpinfo().

  Ответить  
 
 автор: fox2011   (06.02.2012 в 17:42)   письмо автору
 
   для: cheops   (06.02.2012 в 17:02)
 

на главной странице

1. The additional features for working with linked tables have been deactivated. To find out why click here.
2. Connection for controluser as defined in your configuration failed.

установлен denwer php где-то завуалировано

вот инфа phpinfo():

mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.7.1

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.http_output_conv_mimetypes ^(text/|application/xhtml\+xml) ^(text/|application/xhtml\+xml)
mbstring.internal_encoding no value no value
mbstring.language neutral neutral
mbstring.strict_detection Off Off
mbstring.substitute_character no value no value


ТАК В ЧЕМ ТУТ ДЕЛО?...

  Ответить  
 
 автор: Sfinks   (07.02.2012 в 14:57)   письмо автору
 
   для: fox2011   (06.02.2012 в 16:14)
 

мне кажется у вас редактор перемудренный какой-то. откройте в браузере то что вы прикрепили и скопируйте в буфер из браузера. И потом вставьте в раздел SQL в ПМА.

У меня такое с ??????? было не в пма, а в моих скриптах. Помогает после подключения к БД строка
<?
    
if(!@mysql_set_charset("utf8")) exit(@mysql_error());
Вот только не знаю где это в ПМА устанавливается.

  Ответить  
 
 автор: fox2011   (07.02.2012 в 17:30)   письмо автору
10.9 Мб
 
   для: Sfinks   (07.02.2012 в 14:57)
 

Редактор самый обычный текстовый!... Не думаю, что дело в нем!...
Когда открываю дамп в браузере вообще абракадабра вылазит такого вот вида:

"О компании', 'экстремальный туризм, активный отдых"

Самое интересное, что сейчас в пма отображается русский текст нормально, но в браузере на страничке выводит "??????????"!...



ПРИКРЕПИЛ ВИДЕО ФАЙЛ !!!!
Может кто подскажет в чём тут дело?

  Ответить  
 
 автор: Sfinks   (07.02.2012 в 21:43)   письмо автору
 
   для: fox2011   (07.02.2012 в 17:30)
 

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

В браузере на страничке это в вашем скрипте чтоль? А ПМА нормально все отображает? Тогда сделайте так же как я - в своем скрипте после подключения к БД вставьте mysql_set_charset("utf8");

Видео смотреть не буду пока.... У меня еще каменный век..... Безлимит тока после 2:00

  Ответить  
 
 автор: fox2011   (08.02.2012 в 13:20)   письмо автору
 
   для: Sfinks   (07.02.2012 в 21:43)
 

Да, в скрипте, при подключении бд из пма!
Вставил код - Не помогло!

  Ответить  
 
 автор: Sfinks   (08.02.2012 в 17:10)   письмо автору
 
   для: fox2011   (08.02.2012 в 13:20)
 

Что значит "при подключении бд из пма"? ПМА это только приложение к БД. Точно такой же скрипт написаный на ПХП, как и ваш, только несколько более сложный. Поймите, ПМА сам по себе, MySQL Server сам по себе. ПМА к нему только подключается, так же как и ваш скрипт. И раз в ПМА БД выглядит корректно, значит дамп тоже восстановлен корректно и задача теперь состоит в том, чтоб настроить подключение вашего скрипта к мускулу. Только вот если мой вариант не помог, то я уже не подскажу как подключиться.
______
P.S. Совет. Заведите для нового вопроса новую тему. Эта слишком большая. Врядли в нее кто-то полезет новый.

  Ответить  
 
 автор: fox2011   (08.02.2012 в 19:53)   письмо автору
 
   для: Sfinks   (08.02.2012 в 17:10)
 

Спасибо, но я в курсе про пма и mysql просто не так выразился!...


СПАСИБО ВСЕМ, Я уже сам разобрался, методом исключения - надо было вставить код :

if(!@mysql_set_charset("cp1251")) exit(@mysql_error());

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования