PHP 创建 MySQL 表


PHP创建MySQL表

在PHP中,要创建MySQL表,需要使用SQL语言和MySQLi扩展库。在本文中,我们将讨论如何使用PHP来创建MySQL表。

前置条件

  • 一台服务器,上面安装了PHP和MySQL。
  • 一个MySQL的用户,具有创建表的权限。
  • 一个MySQL的数据库,用于保存表。

创建表

要创建一个表,需要使用MySQL的CREATE TABLE语句。下面是一个示例:

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在上面的SQL语句中,我们声明了一个名为“users”的表,该表包含id、username、password、email、created_at和updated_at等列。其中,id列是自增的。PRIMARY KEY用于指定主键约束。UNIQUE KEY用于指定唯一约束。

在PHP中创建表

要在PHP中创建表,需要使用MySQLi扩展库中的mysqli_query函数。下面是一个示例:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// 创建表
$sql = "CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";

if (mysqli_query($conn, $sql)) {
    echo "Table users created successfully";
} else {
    echo "Error creating table: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

在这个示例中,我们使用mysqli_connect()函数创建了与MySQL服务器的连接,然后使用mysqli_query()函数执行了CREATE TABLE语句。如果CREATE TABLE语句执行成功,我们将在浏览器中看到“Table users created successfully”的消息。

结论

在本文中,我们解释了如何在PHP中使用MySQLi扩展库创建MySQL表。我们了解了如何使用CREATE TABLE语句和mysqli_query()函数来创建表。但是,我们建议在实际应用程序中将CREATE TABLE语句封装在一个函数或类中,以便在需要时轻松重复使用。