PHP MySQL 创建表
数据库表有自己唯一的名称,并由列和行组成。
使用 MySQLi 和 PDO 创建 MySQL 表
CREATE TABLE 语句用于在 MySQL 中创建表。
我们将创建一个名为“MyGuests”的表,其中包含五列:“id”、“firstname”、“lastname”、“email”和“reg_date”:
创建表 MyGuests (
id INT(6) 无符号自动增量主键,
名字 VARCHAR(30) NOT NULL,
姓氏 VARCHAR(30) NOT NULL,
电子邮件 VARCHAR(50),
reg_date 时间戳默认 CURRENT_TIMESTAMP 更新时 CURRENT_TIMESTAMP
)
上表注释:
数据类型指定列可以保存什么类型的数据。有关所有可用数据类型的完整参考,请访问我们的 数据类型参考.
在数据类型之后,您可以为每一列指定其他可选属性:
- NOT NULL - 每行必须包含该列的一个值,不允许为空值
- 默认值 - 设置在未传递其他值时添加的默认值
- UNSIGNED - 用于数字类型,将存储的数据限制为正数和零
- 自动增量 - 每次添加新记录时,MySQL 都会自动将字段的值增加 1
- PRIMARY KEY - 用于唯一标识表中的行。设置为 PRIMARY KEY 的列通常为 ID 号,并且经常与 AUTO_INCREMENT 一起使用
每个表都应有一个主键列(在本例中为“id”列)。其值对于表中的每条记录必须是唯一的。
以下示例显示如何在 PHP 中创建表:
示例(MySQLi 面向对象)
<?php
$服务器名称 = “本地主机”;
$用户名 = “用户名”;
$password = "密码";
$数据库名称 = “myDB”;
// 创建连接
$conn = new mysqli($服务器名称,$用户名,$密码,$数据库名称);
// 检查连接
如果 ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 创建表的 sql
$sql = “创建表 MyGuests(
id INT(6) 无符号自动增量主键,
名字 VARCHAR(30) NOT NULL,
姓氏 VARCHAR(30) NOT NULL,
电子邮件 VARCHAR(50),
reg_date 时间戳默认 CURRENT_TIMESTAMP 更新时 CURRENT_TIMESTAMP
)";
如果 ($conn->query($sql) === TRUE) {
echo "表 MyGuests 创建成功";
} 别的 {
echo "创建表错误:" . $conn->error;
}
$conn->关闭();
?>
示例(MySQLi 过程)
<?php
$服务器名称 = “本地主机”;
$用户名 = “用户名”;
$password = "密码";
$数据库名称 = “myDB”;
// 创建连接
$conn = mysqli_connect($服务器名称,$用户名,$密码,$数据库名称);
// 检查连接
如果(!$ conn){
die("连接失败: " . mysqli_connect_error());
}
// 创建表的 sql
$sql = “创建表 MyGuests(
id INT(6) 无符号自动增量主键,
名字 VARCHAR(30) NOT NULL,
姓氏 VARCHAR(30) NOT NULL,
电子邮件 VARCHAR(50),
reg_date 时间戳默认 CURRENT_TIMESTAMP 更新时 CURRENT_TIMESTAMP
)";
如果(mysqli_query($conn,$sql)){
echo "表 MyGuests 创建成功";
} 别的 {
echo "创建表错误:" .mysqli_error($conn);
}
mysqli_close($conn);
?>
示例 (PDO)
<?php
$服务器名称 = “本地主机”;
$用户名 = “用户名”;
$password = "密码";
$dbname =“myDBPDO”;
尝试 {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 将 PDO 错误模式设置为异常
$conn->设置属性(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
// 创建表的 sql
$sql = “创建表 MyGuests(
id INT(6) 无符号自动增量主键,
名字 VARCHAR(30) NOT NULL,
姓氏 VARCHAR(30) NOT NULL,
电子邮件 VARCHAR(50),
reg_date 时间戳默认 CURRENT_TIMESTAMP 更新时 CURRENT_TIMESTAMP
)";
// 使用 exec() 因为没有返回结果
$conn->执行($sql);
echo "表 MyGuests 创建成功";
} 捕获(PDOException $e){
回显$sql”。<br> “.$e->获取消息();
}
$conn = 空;
?>