在 PHP 中使用 Mysqli_query 描述数据库表

Habdul Hazeez 2024年2月15日
  1. 设置测试数据库
  2. 用 PHP 中的 mysqli_query 描述表
在 PHP 中使用 Mysqli_query 描述数据库表

本文将教你如何使用 mysqli_query 来描述一个数据库表。我们将使用 SQL 中的 DESCRIBE 命令进行描述。

同时,我们将打印结果,它看起来就像你在 MySQL 控制台上看到的一样。

设置测试数据库

我们将设置的测试数据库将包含一个表。因此,如果你有可以使用的 MySQL 数据库,请跳过本节。

要开始使用数据库,从 Apache Friends 下载并安装 XAMPP。安装 XAMPP 后,你将可以通过控制台或 phpMyAdmin 访问 MySQL。

同时,对于本文,我们将从控制台访问 MySQL。因此,请执行以下操作以访问 XAMPP 中的 MySQL 控制台。

  • 启动 XAMPP 控制面板。
  • 单击对话框窗口右侧的 Shell。这将启动控制台。
  • 键入 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_querybio_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