MySQL Int 0 kaldırır

3 Cevap php

Merhaba ben Int ayarlanır benim veritabanında bir sütun var.

Ama benim veriler her zaman yeni bir kayıt eklediğinizde, bu yüzden bu 0 kapalı şeritler ve bunu örtmek ilk karakteri bir noktada 1 olması gerektiğini yapmak istemiyorum 0 ile başlar.

Bu sorunu nasıl aşabiliriz?

VARCHAR kullanmak için en iyi yolu herhangi bir sonra PHP kullanarak doğrulamak mı?

Update

Ben 02118272 girerseniz o 2118272 olarak veritabanına kaydedilir.

3 Cevap

Ben bu alanın varchar türünü kullanmanız gerektiğini düşünüyorum. Eğer php tamsayı bir değişken dönüştürmek istiyorsanız sadece bunu yapabilirsiniz:

$var=preg_replace("/[^\d]/","",$var);

Bu ile sayılar değil tüm karakterleri silmek ve daha sonra ilk 0 koruyarak db içine bu değeri koyabilirsiniz.

Tamsayı 7 tamsayı olarak aynı şeydir 000000000000000000000000007. Onlar ya biliyorum ... hem de konum ... yedi. Veritabanında saklanan, aslında 000000000000000000000000007 gibi bir şey olarak depolanır ama çoğu MySQL müşteriler tüm bu sıfırları göstermek için rahatsız etmeyecektir.

Bu belirli bir basamak numarasını kullanarak bu sayıları göstermek için uygulama önemli eğer str_pad() fonksiyonunu kullanarak istediğiniz gibi, sen gibi birçok önde gelen sıfır geri ekleyebilirsiniz:

str_pad($your_string, 10, '0', STR_PAD_LEFT);

Burada, 10 sen dize, '0' bu uzunluk yapmak için eklendi alacak karakter, ve STR_PAD_LEFT istediğiniz uzunluğu dizenin sol tarafına karakterler eklemek için diyor.

, Diğer yandan, numara '007' sayısına '7', temelde farklı ise, o zaman saklamak için bir VARCHAR() alanı kullanmak gerekir. Bu artık tamsayılar; onlar çok farklı anlamları olan dizeleri demektir.

Ne senin veritabanında saklanması gerektiğidir data. Bu verilerin Biçimlendirme uygulamalarının sorumluluğu, veritabanı değil kendisidir.

Eğer öndeki 7 ondalık için, bunu yapmak için doğru yer uygulamanıza veri çıkarma sonra olduğunu gerekirse ben, bir tamsayı olarak saklayın ve olacaktır.