Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Długość pola
cinio
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sowiq
post
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
Go to the top of the page
+Quote Post
hateman
post
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)
Go to the top of the page
+Quote Post
Mchl
post
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.
Go to the top of the page
+Quote Post
kwiateusz
post
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
Go to the top of the page
+Quote Post
cinio
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 20:00