Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Długość pola
Forum PHP.pl > Forum > Bazy danych > MySQL
cinio
Do czego jest długość pola w mysql, bo chyba czegoś nie rozumiem tongue.gif
Jak zrobię sobie pole powiedzmy int(3), to mogę do niego wpisać więcej niż trzy znaki np. 22222.
Piszę sobie skrypcik w php i nie chcę żeby ktoś mi wpisywał do bazy poprzez formularz więcej znaków niż sobie ustalę.
Da się to rozwiązać przez mysql czy muszę sobie obciąć nadmiarowe znaki jakąś funkcją z php?
sowiq
int(3) to nie jest liczba 3-cyfrowa, tylko INT o wielkości 3 bajtów. Przy danych typu VARCHAR itp. 1 bajt = 1 znak, więc te dwie wartości są sobie równoważne.

Znaczy to tyle, że INT zostanie ucięty do maksymalnego osiągalnego zakresu, jeżeli ten zakres zostanie przekroczony, VARCHAR zostanie ucięty do takiej ilości znaków, jaką zadeklarujesz.

[edit]
Sprawdziłem dokładnie i zdaje się, że nabredziłem trochę jeśli chodzi o INT'a. Z tego co widzę i sprawdziłem wpisując do bazy różne wartości, pole INT ma już swój ustalony rozmiar, więc nie ma znaczenia co wpiszemy do pola 'Długość'. Możemy jedynie wybrać TINY/SMALL/-/MEDIUM/BIG INT
http://dev.mysql.com/doc/refman/5.0/en/sto...quirements.html
hateman
łe no faktycznie :]
myślałem, że to jest podstawowy iteger * 2 dp wartości jaką się wpisze
ale obojętnie co się wpisze w definicji pola i tak zawsze max jest ineger 32bitowe dwuznakowe czyli liczby
od −2 147 483 648 do +2 147 483 647
To po co się definiuje długość w nawiasie? INT() questionmark.gif
Mchl
Liczba w nawiasie definiuje jaką szerokość ma pole podczas wyświetlania (przede wszystkim w konsoli). Liczby są równane do lewej spacjami.

Cytat
Another extension is supported by MySQL for optionally specifying the display width of integer data types in parentheses following the base keyword for the type (for example, INT(4)). This optional display width is used to display integer values having a width less than the width specified for the column by left-padding them with spaces.
kwiateusz
ad wyżej tylko jak dodasz zerofill wtedy jesli liczba jest mniejsza niz to co zdefiniowałeś przy zakladaniu pola (tzn int(x)) jest uzupełniana do x zerami, w innym przypadku jest pokazana taka jaka jest smile.gif

to co chcesz osiagnac musisz zrobic poprzez php
cinio
Dzięki za wyjaśnienie, czyli dla php nie ma to znaczenia co sobie tam wpiszę przy incie.
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-2025 Invision Power Services, Inc.