目前我使用Tinyint(1)
来表示MySQL数据库中的Boolean
值,我真的不喜欢这样。那么,我如何通过PHP
在MySQL
数据库中存储和检索Boolean
值呢?
如何在WHERE
子句中使用它,以及如何在INSERT, UPDATE
查询中正确赋值?
当我在PHP上使用它时,它是TRUE
,true
,或者简单地是1
,如果我用===
检查它的话?
另外,您在从Tinyint(1)
迁移到BOOLEAN
时是否遇到过任何问题?
提前感谢。:)
更新日期:
我知道Tinyint(1)
和Boolean
是一样的,但是我想处理Boolean
数据类型而不是Tinyint(1)
,这就是我问这个问题的原因。
3条答案
按热度按时间ifmq2ha21#
MySQL没有布尔数据类型。Tinyint(1)非常接近。在PHP中使用它很简单。
如果你真的想要一个布尔值
juzqafwq2#
对于布尔值,不要使用
=== FALSE
--值已经是一个布尔值了(除非函数要求使用===
,比如strpos()
)。值是布尔的--技术上它是一个整数,但是PHP是一种动态语言,所以这不是问题。考虑
preg_match()
函数-它返回匹配的数目(整数)。你想写这个吗?
还是那个?
显然,没有显式
=== 1
的方法更好。您问它是否匹配,而不是它是否有0个匹配。另外,如果您认为=== 1
更安全,为什么不做=== 1 === TRUE
呢?当然,也可以使用
(bool)
或!!
将值转换为布尔值。而且,在某些语言中,如C或Perl,布尔和数字之间没有区别,它只是工作。
vlf7wbxs3#