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リテラルを使用すると、PHP / C / C ++言語のように、MySQLはそれを1として表し、falseリテラルは0として表します。
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); }
コードのスナップショットは次のとおりです。
出力は次のとおりです。
-
単一のMySQLクエリで列に複数の値を挿入するにはどうすればよいですか?
列に複数の値を挿入するための構文は次のとおりです- insert into yourTableName values(yourValue1),(yourValue2),..........N; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2022 -> ( -> Department varchar(100) -> ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、
-
PHPでnull値を削除する方法は?
PHPでnull値を削除するには、array_filter()を使用します。配列値をフィルタリングします。以下が私たちの配列だとしましょう- $studentDetails = array("firstName" => "John", "lastName"=> null); echo "The original value is=";print_r($studentDetails); array_filter()でフィルタリングしましょう- $result = array_filter($