![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 1.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Do czego jest długość pola w mysql, bo chyba czegoś nie rozumiem (IMG:http://forum.php.pl/style_emoticons/default/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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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 Ten post edytował sowiq 25.09.2008, 18:02:16 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 18 Dołączył: 28.04.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
ł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() (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#5
|
|
Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
to co chcesz osiagnac musisz zrobic poprzez php |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 1.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za wyjaśnienie, czyli dla php nie ma to znaczenia co sobie tam wpiszę przy incie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 20:00 |