2011-01-21 24 views
16

Değeri bir mysql veritabanımda bir boole olarak kaydetmek istiyorum. Ama bir şekilde, onu kaydetmek mümkün değilim, mysql otomatik olarak tinyInt.Also otomatik olarak boolean için varsayılan değerleri söyler. Değerleri nasıl geçiyoruz?mysql db içinde Boolean Alanı

+3

1 = true 0 yaparak kolayca yeterince dönüştürebilir bir mantıksal bunu gerekiyorsa 0'a değerlendirir herhangi 0 hariç değer ya da bir şey olması durumunda PHP if ($column) gibi bir ifade doğru dönecektir = false – BvdVen

cevap

25

MySQL içinde BOOLEAN tür, TINYINT eşanlamlısı içindir. Özel BOOLEAN tipi yok. Kabul edilen vaules, TINYINT için, yani yanlış için 0, 1-255 (tercihen 1) için geçerlidir.

+0

Ama neden bool ve tinyint farklıdır. Aynı ise, bir –

+0

olmalıdır. 'BOOL' yoktur. 'BOOL' olarak yazılabilen sadece 'TINYINT' var. – Mchl

+0

Şimdi anladım ama eğer minikkullanabiliyorsak, mysql'de bool'u neden tuttukları konusunda kafam karışmıştı. Listeden çıkarılmalı. –

6

MySQL'in gerçekten BOOLEAN türü yok, BOOLEAN sütun oluşturursanız aslında bir TINYINT olacaktır.

TINYINT'in bir boolean olarak davranışı, 0'ı false ve 0 değil true olarak kabul ederseniz, sorun değil, sorun değil. $ Sütunu açıkça size $column = ($column != 0);

+1

Son bir $ sütun için tekrar = = ($ column! = 0); –