web-dev-qa-db-ja.com

mysql dbのブールフィールド

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

16
samir chauhan

MySQLでは、BOOLEANタイプはTINYINTの同義語です。専用のBOOLEANタイプはありません。受け入れられた値はTINYINTの値です。つまり、偽の場合は0、真の場合は1〜255(好ましくは1)です。

26
Mchl

MySQLには実際にはブール型はありません。ブール列を作成すると、実際にはTINYINTになります。

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

7
GordonM