我在數據庫表active
中有一列,它應該返回用戶是否已確認郵件。它是tinyint(1),如果它設置爲0,並且我嚴格測試它與FALSE運算符不會返回TRUE。我使用ORM與數據庫進行通信。原始數據類型的數據庫返回值(Kohana ORM)
這在MySQL數據庫設置:
活躍TINYINT(1)是0
if ($user->active === FALSE) // returns FALSE
if ($user->active === '0') // returns TRUE
我在API一直在尋找解決方案,並在數據庫類已經有TINYINT數據類型。
我必須使用==而不是===還是有其他事情可以做?
FALSE與0不相同! - http://php.net/manual/en/language.operators.comparison.php – nnichols 2012-03-22 11:15:52
是的,當0不是整數或字符串,而是布爾值時。這就是我想要做的 - 我想從BOOL中返回數據庫中的值,而不是字符串。 – 2012-03-22 11:22:29
不是不是。除此之外,你還說過你從TINYINT(1)返回的數據不是布爾值。無論如何,MySQL並不實現BOOLEAN。它是TINYINT(1)的同義詞。 – nnichols 2012-03-22 11:29:48