如何在PHP和MySQL中处理布尔值?
我们使用的是MySQL 8.0.12版本。让我们首先检查MySQL版本。
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
在MySQL中处理布尔值,可以使用BOOL、BOOLEAN或TINYINT(1)。如果使用BOOL或BOOLEAN,MySQL会将其内部转换为TINYINT(1)。
在BOOL或BOOLEAN数据类型中,如果使用true字面量,MySQL将其表示为1,false字面量表示为0,就像在PHP/C/C++语言中一样。
为了证明MySQL将BOOL或BOOLEAN转换为TINYINT(1),让我们创建一个带有BOOLEAN或BOOL列的表。
在这里,我们正在创建一个包含BOOLEAN列的表。创建表的查询如下所示:
mysql> create table BoolOrBooleanOrTinyintDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> isvalidAddress BOOLEAN, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.74 sec)
现在使用SHOW CREATE命令检查上述表的DDL。查询如下所示:
mysql> show create table BoolOrBooleanOrTinyintDemo\G
以下是输出:
*************************** 1. row *************************** Table: BoolOrBooleanOrTinyintDemo Create Table: CREATE TABLE `boolorbooleanortinyintdemo` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `isvalidAddress` tinyint(1) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec)
查看isvalidAddress列,数据类型BOOLEAN在内部转换为tinyint(1)。现在您可以检查true字面量将由1表示,false字面量由0表示。在表中插入一些带有true和false字面值的记录。插入记录的查询如下所示:
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.43 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false); Query OK, 1 row affected (0.17 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.29 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false); Query OK, 1 row affected (0.12 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.33 sec)
使用select语句显示表中的所有记录。显示所有记录的查询如下所示:
mysql> select *from BoolOrBooleanOrTinyintDemo;
以下是输出:
+----+----------------+ | Id | isvalidAddress | +----+----------------+ | 1 | 1 | | 2 | 0 | | 3 | 1 | | 4 | 0 | | 5 | 1 | +----+----------------+ 5 rows in set (0.00 sec)
查看上面的示例输出,true表示为1,false表示为0。
在PHP中,如果使用true,它将表示为1,false将表示为0。
查看下面的PHP代码。在这里,我已经设置了变量“isValidAddress”。值为1,这意味着它将if条件评估为true,并且只执行if语句的主体。检查下面的代码:
$isValidAddress = 1;
if($isValidAddress)
{
echo 'true is represented as ';
echo ($isValidAddress);
}
else
{
echo 'false is represented as ';
echo ($isValidAddress);
}这是代码的快照:

以下是输出:

如果将变量“isValidAddress”更改为值0。这意味着它将if条件评估为false,并且只执行else语句的主体。以下是代码:
$isValidAddress=0;
if($isValidAddress)
{
echo 'true is represented as ';
echo ($isValidAddress);
}
else
{
echo 'false is represented as ';
echo ($isValidAddress);
}这是代码的快照:

以下是输出:

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP