PHP MySQL 创建表
在本教程中,你将学习如何使用 PHP 在 MySQL 数据库中创建表。
使用 PHP 在 MySQL 数据库中创建表
在上一章中,我们学习了如何在 MySQL 服务器上创建数据库。现在是时候在数据库中创建一些实际保存数据的表。表格将信息组织成行和列。
SQL 语句CREATE TABLE
用于在数据库中创建表格。
让我们使用该 CREATE TABLE
语句进行 SQL 查询,之后我们将通过将其传递给 PHP mysqli_query()
函数来执行此 SQL 查询,最终创建我们的表。
面向过程式创建表格
<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Attempt create table query execution
$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 "Table created successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// Close connection
mysqli_close($link);
?>
面向对象式创建表格
<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$mysqli = new mysqli("localhost", "root", "", "demo");
// Check connection
if($mysqli === false){
die("ERROR: Could not connect. " . $mysqli->connect_error);
}
// Attempt create table query execution
$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 "Table created successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
}
// Close connection
$mysqli->close();
?>
PDO 式创建表格
<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
try{
$pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
// Set the PDO error mode to exception
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
die("ERROR: Could not connect. " . $e->getMessage());
}
// Attempt create table query execution
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 "Table created successfully.";
} catch(PDOException $e){
die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
// Close connection
unset($pdo);
?>
在上面的例子中的 PHP 代码在 demo 数据库里创建了一个名为 persons
的表格,它有四列 ID,FIRST_NAME,last_name 和 email。
请注意,每个字段名称后跟一个数据类型声明; 此声明指定列可以容纳的数据类型,无论是整数,字符串,日期等。
也有一些额外的限制(也称为修饰符)是在前面的 SQL 语句中的列名之后指定,如 NOT NULL
, PRIMARY KEY
, AUTO_INCREMENT
,它们约束定义关于允许列中的值的规则。
有关语法的详细信息,以及 MySQL 数据库系统中可用的数据类型和约束,请查看 SQL CREATE TABLE
语句 教程。
注意: 如果换行符没有打断关键字,值,表达式等,则 SQL 语句中可能会出现任意数量的换行符。
提示: 设置 PDO::ATTR_ERRMODE
属性为 PDO::ERRMODE_EXCEPTION
来告知 PDO 在发生数据库错误时抛出异常。