ďťż

[MySQL] #1406 - Data too long for column 'rev_content' at row 1 MySQL Error zwracany na Navikacie i PhpMyAdmin

       

Podstrony


telcocafe

Cześć.
Od razu przejdę do rzeczy.
Struktura tabeli:
-- -- Struktura tabeli dla `reviews` -- CREATE TABLE `reviews` ( `rev_id` int(5) NOT NULL auto_increment, `rev_author` varchar(25) NOT NULL, `rev_date` datetime NOT NULL, `rev_email` varchar(25) NOT NULL, `rev_content` varchar(450) NOT NULL, PRIMARY KEY (`rev_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=1;
Przy wstawianiu:
INSERT INTO `reviews` ( `rev_id` , `rev_author` , `rev_date` , `rev_email` , `rev_content` ) VALUES (NULL , 'testowyautor1', '2006-10-08 09:25:17', 'email@email.com', 'Tekst komentarza.')
Błąd: #1406 - Data too long for column 'rev_content' at row 1

Co się dzieje ? :chlip:

Edit>
Do kasacji.
Nie wiem co się działo ale kiedy wywlekłem to zapytanie i skasowałem 'rev_id', i NULL w VALUES to dodało bez problemów.
Użytkownik orglee edytował ten post 08 październik 2006, 08:49


tak przy okazji:
`rev_content` varchar(450) NOT NULL,
Dla dużych łańcuchów używaj text a nie VARCHAR - znacznie bardziej wydajniejsze.


tak przy okazji:
`rev_content` varchar(450) NOT NULL,
Dla dużych łańcuchów używaj text a nie VARCHAR - znacznie bardziej wydajniejsze.

Wdajniejsze mowisz ?
Ale co jesli to maja uzytkownicy wpisywac ten tekst ?
mam sprawdzac go za pomoca strlen i wycinac jak by co za pomoca substr ?
Chyba ze istnieje jakas inna wydajniejsza metoda ktora by eliminowala obciazenie na serwerze jakie musze uzystakc zeby pociac lancuch za pomoca substr()

Eeee, nie wiem, czy dobrze rozumuję, orglee, ale może możesz użyć ograniczonej długości dla textarea czy inputa, nie wiem, gdzie mają ten tekst użytkownicy wpisywać ;)




Eeee, nie wiem, czy dobrze rozumuję, orglee, ale może możesz użyć ograniczonej długości dla textarea czy inputa, nie wiem, gdzie mają ten tekst użytkownicy wpisywać ;)

Super a bierzesz pod uwagę że jakiś cracker czyli huligan internetowy może skopiować sobie url z actiona zrobić nowy formularz nie dając tego ograniczenia i zapaskudzić mi bazę ?
Edit>
Jeżeli chodzi o tą długość bodajże coś koło 400 to mogą jest to pod textarea ale chyba wystarczajaco uzmyslowilem ci ze pomysl z dawaniem czegos takiego jest tylko zabiegiem czysto kosmetycznym i nie mozna go uwazac za ograniczenie.
Użytkownik orglee edytował ten post 08 październik 2006, 17:24
Tak, biorę. Wtedy sprawdzasz długość i od biedy dajesz die lub exit ;)

//Albo lepiej: jeszcze wysyłasz maila do admina z informacjami o figlarzu ;]

@down: dobra, umowa stoi :D
Użytkownik pbnan edytował ten post 08 październik 2006, 17:29

Tak, biorę. Wtedy sprawdzasz długość i od biedy dajesz die lub exit ;)

//Albo lepiej: jeszcze wysyłasz maila do admina z informacjami o figlarzu ;]


Dobra więc umówmy się tak :P
Jeśli chodzi o skrypt komentarzy który teraz robię to chyba nie jest jakaś niezwykła aplikacja internetowa i nie ma wiekszej potrzeby zmieniac varchar na text bo wydajnosc specjalnie sie nie zwiekszy.
Jak bede pisal swoj serwis internetowy to wykorzystam ta rade dzieki.

A dam Ci wskazówkę: w MySQL < 5.0.3 typ varchar może mieć max 255 znaków (dopiero od 5.0.3 do 65 535 znaków).
Użytkownik Coldpeer edytował ten post 08 październik 2006, 20:18
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.