1

Тема: Проблема с заполнением таблицы в PHP MyAdmin

Здравствуйте

Не могу заполнить таблицу PHP MyAdmin пишет
Затронуто строк: 1.
Warning: #1048 Column 'id' cannot be null
Warning: #1366 Incorrect string value: '\xC3\xEB\xE0\xE2\xED\xE0...' for column 'title' at row 1
Warning: #1366 Incorrect string value: '\xCE\xE1\xEC\xE5\xED\xED...' for column 'text' at row 1

Хотя мне кажется что возможно проблема с кодировкой т.к вместо русских букв знаки вопросов.Может кто сталкивался ?

2

Re: Проблема с заполнением таблицы в PHP MyAdmin

surv20
Если вы импортируете дамп в phpMyAdmin, то откройте файл (.sql) текстовым редактором и посмотрите как выглядят данные. Приведите пример любой таблицы и строку данных.

Если вы не можете выполнить SQL запрос, то покажите его вместе со структурой таблицы.

3

Re: Проблема с заполнением таблицы в PHP MyAdmin

Уже всё получилось,но с английским текстом,с русским текстом ничего не выходит.Вы не подскажите какую надо указать кодировку?

4

Re: Проблема с заполнением таблицы в PHP MyAdmin

surv20 сказал:

Вы не подскажите какую надо указать кодировку?

Где именно вы хотите указать кодировку? На станицах сайта, или в базе данных? Эти кодировки зависимы и должны быть идентичными.

Для определения проблемы надо все-таки, чтобы вы ответили на вопросы из предыдущего моего сообщения.

5

Re: Проблема с заполнением таблицы в PHP MyAdmin

Немножко структура получилось кривой


Поле      Тип      Сравнение      Атрибуты      Null      По умолчанию          
id            int(5)             Нет     None     auto_increment             
page     varbinary(255)         Нет                       None             
title             varbinary(255)                      Нет       None                 
meta_d     varbinary(255)                    Нет       None                     
meta_k     varbinary(255)                    Нет       None                 
text              blob              BINARY     Нет       None

6

Re: Проблема с заполнением таблицы в PHP MyAdmin

surv20
У вас поля, которые должны содержать текстовые данные имеют бинарный тип, что неправильно. Замените тип полей указанным ниже образом, только имейте в виду, что делать это можно только если таблица пустая, в ней нет данных, иначе данные будут испорчены.

varbinary замените на VARCHAR
blob замените на TEXT

7

Re: Проблема с заполнением таблицы в PHP MyAdmin

VARCHAR и TEXT стояли видимо при копировании что-то изменилось  binary убрал эффекта никакого.Я думаю что проблема в кодировке почему с английским текстом получается а с русским нет вот в чём вопрос.

8

Re: Проблема с заполнением таблицы в PHP MyAdmin

surv20
если в таблице есть данные и они на русском то при смене кодировки они будут испорчены, выгрузите дамп таблицы затем присвойте кодировку сравнения если русская то 1251 general ci
в ваших скриптах после соединения с базой пропишите запрос

mysql_query ("SET NAMES cp1251");

9

Re: Проблема с заполнением таблицы в PHP MyAdmin

Я сначало создал таблицу и установил кодировку кот вы посоветовали 1251 general ci  а потом начал забивать в неё инфо на русском на сей раз не появилось никакой информации ни на английском ни на русском появилась токо ошибка

Warning: #1366 Incorrect string value: '\xC3\xEB\xE0\xE2\xED\xE0...' for column 'title' at row 1
Warning: #1366 Incorrect string value: '\xC4\xEE\xE1\xF0\xEE ...' for column 'meta_d' at row 1
Warning: #1366 Incorrect string value: '\xCF\xF0\xEE\xE2\xE5\xF0...' for column 'text' at row 1

10 (изменено: DmitryV, 2010-09-25 07:03:04)

Re: Проблема с заполнением таблицы в PHP MyAdmin

surv20
сделайте средствами phpmyadmin экспорт структуры Вашей таблицы, Вам пишет что вводимые данные не коректны и не сотвествуют заданным в структуре. дайте дамп и пример заносимых данных.

11

Re: Проблема с заполнением таблицы в PHP MyAdmin

Вот сделал экспорт вроде оно .



-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Сен 25 2010 г., 13:11
-- Версия сервера: 5.1.36
-- Версия PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `phpsite`
--

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

--
-- Структура таблицы `settings`
--

CREATE TABLE IF NOT EXISTS `settings` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `page` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `meta_d` varchar(255) NOT NULL,
  `meta_k` varchar(255) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Дамп данных таблицы `settings`
--

INSERT INTO `settings` (`id`, `page`, `title`, `meta_d`, `meta_k`, `text`) VALUES
(1, 'index', '???????', '????? ?????????? ?? ???? ??? ?????  PHP,HTML,,CSS', 'PHP,HTML,,CSS', '???????? ???????');

12 (изменено: DmitryV, 2010-09-25 17:43:47)

Re: Проблема с заполнением таблицы в PHP MyAdmin

surv20
это уже скорее всего битые данные

(1, 'index', '???????', '????? ?????????? ?? ???? ??? ?????  PHP,HTML,,CSS', 'PHP,HTML,,CSS', '???????? ???????');

такие не востанавливаються если у Вас на сайте все коректно показывает то смотрите с какой базой реально работает сайт!

DEFAULT CHARSET=latin1

- не верно latin1 это не cp1251, либо создайте занова таблицу с правильной кодировкой либо - для базы данных (сперва сняв дамп данных) в PMA смените базе кодировку: выберите - база данных - операции - внизу Сравнение - установите cp1251_general_ci смотрите что за кодировка указана в ваших страницах на сайте если работаете с 1251 пропишите в заголовках:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

и потом заносите данные в таблицы.

С какой кодировкой в заголовках работает Ваш сайт такая должна быть и в базе, если с русским текстом то либо UTF-8 везде либо cp1251.

13

Re: Проблема с заполнением таблицы в PHP MyAdmin

Спасибо большое уже всё ок.Получилось после того как я прописал кодировку 1251 general ci в каждой строке в таблице.Хотя есть ещё проблемы с соединением ЬД с сайтом,надо ещё чуток поковырятся.