2011-01-21 9 views
16

my mysqlデータベースに自分の値をブール値として保存します。しかし、どういうわけか私はそれを保存することができません、mysqlは自動的にタイプtinyIntのそれを保存します。また、ブール値のデフォルト値を教えてください。どのように値を渡す?mysql dbのブールフィールド

+3

1 = true 0 = false – BvdVen

答えて

25

BOOLEANのタイプは、TINYINTの同義語です。専用のBOOLEANタイプはありません。 accepetedは、TINYINTのものです。つまり、falseは0、trueは1-255(好ましくは1)です。

+0

しかし、なぜboolとtinyintが違うのですか?それらが同じ場合は、1つあるべきです。 –

+0

'BOOL'はありません。 'BOOL'と書くことができるのは 'TINYINT'だけです。 – Mchl

+0

私は今それを得ましたが、tinyInt.Boolを使うことができるのであれば、なぜそれらがmysqlのboolを保持しているのか混乱していました。リストから削除する必要があります。 –

6

MySQLには実際にBOOLEAN型がありません.BOOLEAN型の列を作成すると、実際にはTINYINTになります。

TINYINTをブール値として扱うことはあまり問題にはなりませんが、0をfalse、0以外をtrueとして扱うと問題ありません。 PHPではif ($column)のようなステートメントは、$ columnが0以外の任意の値または0と評価される値であればtrueを返します。もし明示的にブールにする必要があれば、十分に簡単に変換できます。$column = ($column != 0);

+1

最後の1行のUpvote $ column =($ column!= 0); –