データベーステーブルactive
には、ユーザーがメールを確認したかどうかを返す列があります。それはtinyint(1)であり、0に設定されていればそれを厳密にFALSEに対してテストしますが、TRUEは返されません。 ORMを使用してデータベースと通信します。これは、MySQLデータベースに設定されている元のデータ型(Kohana ORM)のデータベースからの戻り値
:
アクティブTINYINT(1)はい0
if ($user->active === FALSE) // returns FALSE
if ($user->active === '0') // returns TRUE
私は解決策のためのAPIで検索してきたとDatabaseクラスにTINYINTデータ型はすでにありました。
==の代わりに==を使用する必要がありますか、それとも他に何かできますか? PHP同等物にDBデータをキャスト、一貫性のあるものを維持するために
偽は0と同一ではありません! - http://php.net/manual/en/language.operators.comparison.php – nnichols
はい、それは、0が整数でも文字列でもなく、ブール値である場合です。それは私がやりたいことです。データベースからBOOLで値を返したいのですが、文字列ではありません。 –
そうではありません。あなたはBINLEANではなく、TINYINT(1)からデータを返すと言っています。 MySQLはとにかくBOOLEANを実装していません。これはTINYINT(1)の同義語です。 – nnichols