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 コードを記述します。
- データベースに接続します。
- OOP バージョンの
mysqli_query
を使用して、bio_data
テーブルでDESCRIBE
コマンドを使用します。 fetch_all
を使用して結果をフェッチします。- 最初の行のキーを取得します。最初の行はテーブルヘッダーになります。
- テーブルヘッダーを印刷します。
- テーブルの行を印刷します。
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>
出力:
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