Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z longtext
Forum PHP.pl > Forum > Bazy danych > MySQL
Tsiru
Mam problem z bazą MySQL (wersja 5.0.19).
Przy dodaniu rekordu do bazy zwracany jest błąd:
Cytat
#1406 - Data too long for column 'value' at row 4

Pole 'value' jest typu longtext, więc powinno przyjąc spokojnie 8400 znaków (tyle na artykół, który chciałem dodać), ale nie przyjmuje. Co ciekawsze inne teksty, niektóre długie na 10000 znaków mogę umieszczać bez problemu.
Może mi ktoś powiedzieć dlaczego to nie wchodzi, skoro jest krótsze ?
Jarod
Cytat(Tsiru @ 2006-05-16 18:42:18)
Mam problem z bazą MySQL (wersja 5.0.19).
Przy dodaniu rekordu do bazy zwracany jest błąd:
Cytat
#1406 - Data too long for column 'value' at row 4

Pole 'value' jest typu longtext, więc powinno przyjąc spokojnie 8400 znaków (tyle na artykół, który chciałem dodać), ale nie przyjmuje. Co ciekawsze inne teksty, niektóre długie na 10000 znaków mogę umieszczać bez problemu.
Może mi ktoś powiedzieć dlaczego to nie wchodzi, skoro jest krótsze ?

Podaj kod SQL do tworzenia tej tabeli bo tak to ciężko ocenić co jest nie tak.
Tsiru
Kod
CREATE TABLE `arts` (
  `id` double NOT NULL default '0',
  `ctime` double NOT NULL default '0',
  `mtime` double NOT NULL default '0',
  `etime` double NOT NULL default '0',
  `vtime` double NOT NULL default '0',
  `author` varchar(32) default NULL,
  `viewied` double NOT NULL default '0',
  `value` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;
Jarod
Cytat(Tsiru @ 2006-05-16 18:50:10)
Kod
CREATE TABLE `arts` (
  `id` double NOT NULL default '0',
  `ctime` double NOT NULL default '0',
  `mtime` double NOT NULL default '0',
  `etime` double NOT NULL default '0',
  `vtime` double NOT NULL default '0',
  `author` varchar(32) default NULL,
  `viewied` double NOT NULL default '0',
  `value` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;

Ostatnie strony http://www.eduvision.nl/diversen/mysql.pdf

Pozatym jest problem http://bugs.mysql.com/bug.php?id=17872 (niby tylko przy kodowaniu utf8

Tu też podobny problem http://www.sitepoint.com/forums/showthread.php?t=365412


Widać nie tylko Ty masz ten problem. Nie wiem jak Ci pomóc.

Przejrzyj jeszcze to http://dev.mysql.com/doc/mysql/search.php?...es.html&lang=en
Tsiru
Dzieki, jednak pomogło.
W bugach Mysql'a napisali że to wywołuje 228 znak z tabeli ASCII, więc go poprostu usunąłem z zapytania (tak się kończy kopiowanie tekstu z worda).
Jarod
Cytat(Tsiru @ 2006-05-16 18:50:10)
Kod
CREATE TABLE `arts` (
  `id` double NOT NULL default '0',
  `ctime` double NOT NULL default '0',
  `mtime` double NOT NULL default '0',
  `etime` double NOT NULL default '0',
  `vtime` double NOT NULL default '0',
  `author` varchar(32) default NULL,
  `viewied` double NOT NULL default '0',
  `value` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;

Mam pytanie dlaczego piszesz ENGINE=MyISAM a nie TYPE=MyISAM ?

Jeśli dasz DEFAULT CHARSET=latin2 to domyślnie będzie możliwość zapisywania do bazy polskich znaków?
Tsiru
Cytat
Mam pytanie dlaczego piszesz ENGINE=MyISAM a nie TYPE=MyISAM ?

Nic nie wpisywałem, taki był wynik zapytania "SHOW CREATE TABLE `arts`".
Cytat
Jeśli dasz DEFAULT CHARSET=latin2 to domyślnie będzie możliwość zapisywania do bazy polskich znaków?

Nielicząc tego przypadku który wywoływał błąd, do przez MyPHPadmin bez problemu zapisuje mi polskie znaczki w bazie.
Jarod
Cytat(Tsiru @ 2006-05-17 15:34:33)
Cytat
Mam pytanie dlaczego piszesz ENGINE=MyISAM a nie TYPE=MyISAM ?

Nic nie wpisywałem, taki był wynik zapytania "SHOW CREATE TABLE `arts`".
Cytat
Jeśli dasz DEFAULT CHARSET=latin2 to domyślnie będzie możliwość zapisywania do bazy polskich znaków?

Nielicząc tego przypadku który wywoływał błąd, do przez MyPHPadmin bez problemu zapisuje mi polskie znaczki w bazie.

1. Zainteresuj się TYPE

2. Jak nie używam phpMyAdmina, na razie testuje baze.
Jak ustawiłem Latin1 to jak chcę wprowadzić imię 'Jaś' dostaje błąd tak jak Ty. Jak wpisze 'Jas' to dodaje rekord.

I nie wiem dlaczego? Dane wpisuje z palca.. :/ Może teraz Ty masz pomysł?
Tsiru
Dzięki za rade z Type.
Jeśli chodzi o ten błąd to też nie mam pomysłu. Z tego co się dowiedziałem występuje tylko przy utf - może użyj SET NAMES i ustaw jakieś inne kodowanie?
Jarod
Cytat(Tsiru @ 2006-05-18 12:13:13)
Dzięki za rade z Type.
Jeśli chodzi o ten błąd to też nie mam pomysłu. Z tego co się dowiedziałem występuje tylko przy utf - może użyj SET NAMES i ustaw jakieś inne kodowanie?

Jak ustawie inne kodowanie to nie będę mógł zapisywać polskich znaków.. :/
Tsiru
A latin2 ? Jakbyś go użył zamiast utf ?
Jarod
Cytat(Tsiru @ 20.05.2006, 12:48 ) *
A latin2 ? Jakbyś go użył zamiast utf ?


Temat: Problem z polskimi znakami
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.