如何在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); }
這是程式碼的快照:
以下是輸出:
廣告