PHP で Mysqli_query を使用してデータベーステーブルを記述する

Habdul Hazeez 2023年1月30日
  1. テストデータベースを設定する
  2. PHP で mysqli_query を使用してテーブルを記述する
PHP で Mysqli_query を使用してデータベーステーブルを記述する

この記事では、mysqli_query を使用してデータベーステーブルを記述する方法を説明します。SQL で DESCRIBE コマンドを使用して説明を行います。

同時に、結果を印刷します。これは、MySQL コンソールに表示されるもののようになります。

テストデータベースを設定する

設定するテストデータベースには、単一のテーブルが含まれます。したがって、使用できる MySQL データベースがある場合は、このセクションをスキップしてください。

データベースの使用を開始するには、ApacheFriends から XAMPP をダウンロードしてインストールします。XAMPP をインストールすると、コンソールまたは phpMyAdmin を介して MySQL にアクセスできるようになります。

一方、この記事では、コンソールから MySQL にアクセスします。したがって、XAMPP で MySQL コンソールにアクセスするには、次の手順を実行します。

  • XAMPP コントロールパネルを起動します。
  • ダイアログウィンドウの右側にあるシェルをクリックします。これにより、コンソールが起動します。
  • mysql -u root -p と入力し、キーボードのEnterキーを押します。

このコマンドは、デフォルトのデータベースユーザーとパスワードを想定しています。デフォルトのユーザーは root で、パスワードは空です。

MySQL にログインしたら、次のクエリを使用してデータベースを作成します。

CREATE database user_details;

以下を使用して、新しいデータベースに切り替えます。

USE user_details;

次に、次のクエリを使用してデータベースにテーブルを作成します。

CREATE TABLE bio_data (
id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (id)) ENGINE = InnoDB;

PHP で mysqli_query を使用してテーブルを記述する

mysqli_query を使用してテーブルを記述するために、次のことを行う PHP コードを記述します。

  1. データベースに接続します。
  2. OOP バージョンの mysqli_query を使用して、bio_data テーブルで DESCRIBE コマンドを使用します。
  3. fetch_all を使用して結果をフェッチします。
  4. 最初の行のキーを取得します。最初の行はテーブルヘッダーになります。
  5. テーブルヘッダーを印刷します。
  6. テーブルの行を印刷します。
    6.1. is_null を使用して NULL 値をテストします。
    6.2. NULL 値のテキスト"NULL"を出力します。

以下は、上記の手順の PHP コードです。

<head>
	<meta charset="utf-8">
	<title>Describe Table with mysqli_query</title>
	<style>
		body { display: grid; justify-content: center; align-items: center; height: 100vh; }
		table { border-collapse: collapse; width: 20em; }
		table,th, td { border: 1px dashed #1a1a1a; }
		td,th { padding: 0.5em; }
	</style>
</head>
<body>
	<main>
		<?php
		// The username is root
		// and the password is empty.
		$connection_string = new mysqli("localhost", "root", "", "user_details");
		// getting all the rows from the query
		$table_bio_data = $connection_string->query("DESC bio_data")->fetch_all(MYSQLI_ASSOC);
		// getting keys from the first row
		$header = array_keys(reset($table_bio_data));

		// Print the table
		echo "<table>";
		// Print the table headers
		echo "<tr>";
		foreach ($header as $value) {
		    echo "<th align='left'>$value</th>";
		}
		 echo "</tr>";
		// Print the table rows
		foreach ($table_bio_data as $row) {
			echo "<tr>";
		    foreach ($row as $value) {
		    	if (is_null($value)) {
		    		echo "<td>NULL</td>";
		    	} else {
		        	echo "<td>$value</td>";
		        }
		    }
		    echo "</tr>";
		}
		echo "</table>";
		?>
	</main>
</body>

出力:

Firefox 100 の MySQL テーブルの説明

著者: Habdul Hazeez
Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn

関連記事 - PHP MySQL