26 (изменено: Caries, 2007-09-05 14:49:18)

Re: При запуске /scripts/setup.php phpMyAdmin выдает ошибку...

Спб за ответ!

Hanut сказал:

Caries
Парсер правильно указал ошибку. В таблице `entry_state` значение по умолчанию NULL, а в строке данных значение не указано (между двумя запятыми разделяющими данные, пусто, а должно быть NULL или какое-то значение). В данном случае надо править дамп или данные в самой БД, то есть заменить все пустые значения на NULL.

Понятно, но причина в чём? Я делал дамп phpMyAdminом и в принципе он должен был правильно отобразить данные находящиеся в базе или не обязательно?
Скрипт Оскоммерс (известный скрипт электронного магазина) без переделок только поменяный дизайн.

Hanut сказал:

Caries
При импорте в Денвере у вас сбита кодировка, поэтому кирилица не отображается и в любом случае импорт не будет корректным. Посмотрите в какой кодировке данные находятся в дампе.

Я чайник. Как посмотреть?

Потому что в дампе базы сделанной на сервере (MySQL: 4.0.21) прямой ссылки на кодировку нет.
Зато когда я делал дамп той же базы на локальной машине (пакет Денвер MySQL 4.1.16), структура таблицы заканчивается такой строкой:

ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=52.

При опциии совместимости строка меняется на

TYPE=MyISAM AUTO_INCREMENT=52.

Косвенно могу сказать, что русские буквы в дампе базы читаются в эксплоуэре при экспорте в кодировке cp1251.

Hanut сказал:

Caries
В какой кодировке у вас вообще должны находиться данные, cp1251?

Да.

Сообщение добавлено Wed Sep  5 15:47:01 2007
Может быть можно поменять опции в phpMyAdmin при экспорте, чтобы правильно отображались значения в ячейках?
Или придётся править в ручную?

27

Re: При запуске /scripts/setup.php phpMyAdmin выдает ошибку...

Caries сказал:

Понятно, но причина в чём? Я делал дамп phpMyAdminом и в принципе он должен был правильно отобразить данные находящиеся в базе или не обязательно?

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

Caries сказал:

Косвенно могу сказать, что русские буквы в дампе базы читаются в эксплоуэре при экспорте в кодировке cp1251.

Ясно, значит дамп находится в cp1251 и при импорте в phpMyAdmin Денвера надо выбирать данную кодировку.

Caries сказал:

Может быть можно поменять опции в phpMyAdmin при экспорте, чтобы правильно отображались значения в ячейках?

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

Caries сказал:

Зато когда я делал дамп той же базы на локальной машине (пакет Денвер MySQL 4.1.16), структура таблицы заканчивается такой строкой:

ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=52.

При опциии совместимости строка меняется на

TYPE=MyISAM AUTO_INCREMENT=52.

Правильно. MySQL 4.0 не понимает установки кодировок уровня таблиц.

28

Re: При запуске /scripts/setup.php phpMyAdmin выдает ошибку...

Ещё раз спасибо за обстоятельнй ответ.
Понимаю как может раздражать профи копание чайника в профф. теме, но занимаюсь этим по той причине, что все кого я знаю на поле боя администрирования не смогли (а думаю не захотели) разобраться в этой проблеме к сожалению.

Hanut сказал:

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

Т.е. насколько я понял, то скорее всего скрипт конфликтует с базой и из-за этого записываются некорректно поля?

Hanut сказал:

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

Ок, попробую. По крайней мере это решение проблемы.

29

Re: При запуске /scripts/setup.php phpMyAdmin выдает ошибку...

Caries сказал:

Т.е. насколько я понял, то скорее всего скрипт конфликтует с базой и из-за этого записываются некорректно поля?

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