如何在 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 转换为 TINYNT(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);
}
这是代码的快照:

输出结果如下:

相关文章
有用资源
mysql 参考教程 - 该教程包含有关 mysql 的更多信息:https://www.cainiaomax.com/mysql/

