Bazı öğelerin fiyatlarını mysql tablosuna koymam gerekiyor. Tabloyu oluştururken, DECIMAL(10,2)
kullanıyorum, çünkü virgülden sonra 2 basamaktan daha fazlasına ihtiyacım yok (örneğin: 123,45 bir girdi olarak kabul edilir, ancak 123,456 PHP ile 123,45'e yuvarlanır).Mysqli'de ondalık sayıları tutma
İlk soru: DECIMAL(10,2)
kullanarak, virgülden önce kaç sayı saklanabileceğini nasıl bilebilirim? 10 olduğunu biliyorum, 10 sadece Mysql'in bu sayılarla matematik yaparken kullandığı hassaslıktır: bu yüzden numaranın uzunluğu nerede belirtilir?
İkinci soru: Veri türüne sığması için kullanıcı girdisini döndürmek için PHP kullanıyorum (virgülden sonra 2 rakamla yüzdür). Bu verileri eklemek için mysqli->bind_param
'u nasıl kullanmalıyım? bind_param
tarafından kabul edilen bu veri tiplerinden hangilerinin (documentation) kullanmam gerekir (ve muhtemelen: neden)?
Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets
Teşekkürler! Yani 10 - 2, şimdi anlıyorum. – Saturnix
Tam ölçeklendirilmiş sayısal gerekiyorsa, 'double' veya' float' kullanılmasını önermiyorum. Bkz. Http://dev.mysql.com/doc/refman/5.6/en/problems-with-float.html –
Bu soruda ve mysql, ondalık ifadesini kullanır. sadece çift olarak ayarlanmış bind param türü. Ve verilen tiplerden sadece bir seçenek. –