PHP MySQL

数据库由一个或多个表组成。这些表包含使用列和行模型的数据。在MySQL数据库中创建表,表名在数据库系统中应该是唯一的。

CREATE TABLE语句用于在MySQL中创建表。创建表涉及为表提供名称并定义每列的名称和数据类型(例如 varchar、int、date等)。例如,要创建一个名为"Employee"的表,包含五列:"EmpID"、"Name"、"City"、"Age"和"Salary",可以使用以下查询:

CREATE TABLE Employee (
  EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2)
) 

在上面的查询中,数据类型指定了列可以保存什么类型的数据。在数据类型之后,为每列提供可选属性。这里使用的属性的描述如下:

  • NOT NULL - 确保列不能有 NULL 值。
  • UNIQUE - 确保列中的所有值是不同的。
  • 主键 - 唯一标识表的列中的每一行/记录。 NOT NULL 和 UNIQUE 约束的组合。
  • UNSIGNED - 用于数字类型,将存储的数据限制为正数和零
  • AUTO_INCRMENT - 每次添加一条新记录,自动将字段的值增加1 。

要连接MySQL数据库,可以使用mysqli_connect()函数。建立与数据库的连接后,可以使用 mysqli_query() 函数对数据库执行查询以创建新表。

创建 MySQL 表 - 面向对象风格

下面的示例演示如何以面向对象的方式创建名为"Employee"的表。

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

//建立连接
$mysqli = new mysqli($servername, $username, $password, $dbname);

//检查连接
if ($mysqli->connect_errno) {
  echo "Failed to connect to MySQL: ". $mysqli->connect_error;
  exit();
}

//建表查询
$sql = "CREATE TABLE Employee (
  EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2)
)";

//执行查询
if (!$mysqli->query($sql)) {
  echo "Error creating table: ". $mysqli->error;
} else { 
  echo "Table Employee created successfully.";
}

//关闭连接
$mysqli->close();
?> 

创建 MySQL 表 - 面向过程风格

使用面向过程获得相同的结果,可以使用以下脚本。

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

//建立连接
$mysqli = mysqli_connect($servername, $username, $password, $dbname);

//检查连接
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: ". mysqli_connect_error();
  exit();
}

//建表查询
$sql = "CREATE TABLE Employee (
  EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2)
)";

//执行查询
if (!mysqli_query($mysqli, $sql)) {
  echo "Error creating table: ". mysqli_error($mysqli);
} else { 
  echo "Table Employee created successfully.";
}

//关闭连接
mysqli_close($mysqli);
?> 

完整 PHP MySQLi 参考

有关 PHP MySQLi 扩展的所有属性、方法和功能的完整参考,请参阅 PHP MySQLi 参考