• 24-07-2013, 01:42:04
    #1
    Arkadaşlar bir tabloyu int(3) olarak ayarlayınca 3 bsamaklı sayıları almıyor mu?

    Şuan benim hazırladığım bir script var. Script bitti gibi birşey. Test ediyordum. 77777777777777777 gibi bir değer girdim, hata verip ekrana hata mesajı verdirmek için ama başarılı bir şekilde veritabanına eklendi. PHPMaydamin'e girdim. 2147483647 olarak saklamış.

    Normalde bir tablo int() olarak ayarlanınca en fazla 2147483647 değerini saklayabiliyor, bunu biliyorum ama benim int(3) yapmış olmamın neden bir etkisi olmadı? Yani parantez içindeki sayının bir anlamı yok mu? Okuduğum birçok makalede parantez içindeki sayı kadar basamak olabilir diyor. Yani bu durumda en fazla 999 kaydetmesi lazım ya da hata vermesi lazım.

    Gecenin bu saatinde beynim bulandı, artık düşünemiyorum. Belki çok ufak bir detayı kaçırıyorum ama ne....
  • 25-07-2013, 00:19:57
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bunun 2 değişik tanımlaması var mysql'de. Birisi int(3) diğer, int(3) zerofill.
    int(3) ile 1 değerini girersen 3 basamak atar ve sadece 1 yazar, yani 3 adet boşluk bırakıp sonra 1 yazar. Zerofill yaparsan 001 yazar. 3 basamaklıyı geçene kadar parantez içerisindeki sayı adeti kadar 0 yazar.

    int(3) - 1, 2, 123,1234,12345 ...
    int(3) zerofill - 001,002,023,999,102341 ..
    create table #temp(a int(3),b int(3) zerofill)
    insert into #temp(a,b)values(1,1),(1,12),(1234,123123)
    select * from #temp

    77777777777 yazarsan integer'ın maksimum desteklediği sayıyı kaydeder. int(3) yapmış olman yanlızca 3 basamaklı kaydetmeni sağlamaz.
  • 25-07-2013, 00:23:46
    #3
    İşte budur ya. Aradığım bilgi buydu işte.

    Çok teşekkürler verdiğin bilgiler için.