在本教程中,您将学习如何使用PHP在MySQL数据库中创建表。
在上一章中,我们学习了如何在MySQL服务器上创建数据库。现在是时候在数据库内部创建一些表,这些表实际上将保存数据。表格将信息组织成行和列。
SQL CREATE TABLE语句用于在数据库中创建表。
让我们使用该CREATE TABLE语句进行SQL查询,此后,我们将通过将其传递给PHP mysqli_query()函数以最终创建表来执行此SQL查询。
<?php /* 尝试MySQL服务器连接。 假设您正在运行MySQL。 具有默认设置的服务器(没有密码的用户“root”) */ $link = mysqli_connect("localhost", "root", ""); // 检查连接 if($link === false){ die("错误:无法连接。" . mysqli_connect_error()); } //尝试执行CREATE TABLE查询执行 $sql = "CREATE TABLE persons( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(70) NOT NULL UNIQUE )"; if(mysqli_query($link, $sql)){ echo "已成功创建表。"; } else{ echo "错误:无法执行 $sql. " . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php /* 尝试MySQL服务器连接。 假设您正在运行MySQL。 具有默认设置的服务器(没有密码的用户“root”) */ $mysqli = new mysqli("localhost", "root", "", "demo"); // 检查连接 if($mysqli === false){ die("错误:无法连接。 " . $mysqli->connect_error); } //尝试执行CREATE TABLE查询执行 $sql = "CREATE TABLE persons( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(70) NOT NULL UNIQUE )"; if($mysqli->query($sql) === true){ echo "表创建成功。"; } else{ echo "错误:无法执行 $sql. " . $mysqli->error; } // 关闭连接 $mysqli->close(); ?>
<?php /* 尝试MySQL服务器连接。 假设您正在运行MySQL。 具有默认设置的服务器(没有密码的用户“root”) */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //将PDO错误模式设置为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("错误:无法连接。 " . $e->getMessage()); } //尝试执行CREATE TABLE查询执行 try{ $sql = "CREATE TABLE persons( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(70) NOT NULL UNIQUE )"; $pdo->exec($sql); echo "已成功创建表。"; } catch(PDOException $e){ die("错误:无法执行 $sql. " . $e->getMessage()); } //关闭连接 unset($pdo); ?>
上例中的PHP代码在演示数据库中创建了一个名为person的表,该表具有id,first_name,last_name和email四列。
注意,每个字段名称后都有一个数据类型声明; 该声明指定列可以保存的数据类型,整数,字符串,日期等。
在前面的SQL语句中,在列名之后指定了一些附加约束(也称为修饰符),如NOT NULL、PRIMARY KEY、AUTO_INCREMENT等。约束定义有关列中允许的值的规则。
请查看有关SQL CREATE TABLE语句的教程,以获取有关语法以及MySQL数据库系统中可用数据类型和约束的详细信息。
注意: SQL语句中可以出现任意数量的换行符,前提是任何换行符都不会中断关键字、值、表达式等。