値をブール値としてmysqlデータベースに保存したい。しかし、どういうわけか私はそれを保存することができません、mysqlはtinyInt型のそれを自動的に保存します。ブール値のデフォルト値も教えてください。どのように値を渡すのですか?
MySQLでは、BOOLEAN
タイプはTINYINT
の同義語です。専用のBOOLEAN
タイプはありません。受け入れられた値はTINYINT
の値です。つまり、偽の場合は0、真の場合は1〜255(好ましくは1)です。
MySQLには実際にはブール型はありません。ブール列を作成すると、実際にはTINYINTになります。
TINYINTをブール値として扱うことはそれほど問題ではありませんが、0をfalseとして扱い、0以外をtrueとして扱う場合は問題ありません。 PHPでは、if ($column)
のようなステートメントは、$ columnが0以外の値、または0と評価されるものである場合にtrueを返します。これを明示的にブール値にする必要がある場合は、変換できます$column = ($column != 0);
を実行することで簡単にできます