在PHP中建立数据库是Web开发中的基础操作,通常涉及MySQL或MariaDB等关系型数据库管理系统,通过PHP脚本可以自动化完成数据库的创建、表结构设计及初始数据填充,提高开发效率,以下是详细的操作步骤和注意事项。

环境准备
在开始之前,确保本地或服务器环境已安装PHP、MySQL(或MariaDB)以及相应的扩展库,可以通过phpinfo()函数检查PDO或MySQLi扩展是否已启用,若未启用,需在php.ini文件中取消相关扩展的注释并重启服务,建议使用集成开发环境(如XAMPP、WAMP)简化配置流程。
连接MySQL服务器
建立数据库的第一步是连接到MySQL服务器,使用MySQLi或PDO扩展均可实现连接,以下为MySQLi连接示例:
$servername = "localhost";
$username = "root";
$password = "";
$conn = new mysqli($servername, $username, $password);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
若使用PDO,需指定数据源名称(DSN)并设置错误模式为异常,便于调试。
创建数据库
连接成功后,可通过SQL的CREATE DATABASE语句创建数据库,为避免重复创建,可先检查数据库是否存在:
$dbname = "my_database";
$sql = "CREATE DATABASE IF NOT EXISTS $dbname";
if ($conn->query($sql) === TRUE) {
echo "数据库创建成功";
} else {
echo "创建数据库错误: " . $conn->error;
}
注意:数据库名称需符合MySQL命名规范,避免使用保留关键字。

选择数据库并创建表
创建数据库后,需通过USE语句选择目标数据库,随后设计表结构,创建用户表:
$conn->select_db($dbname);
$sql = "CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "表创建成功";
}
设计表时需合理定义字段类型、约束(如主键、唯一键)及索引,确保数据完整性和查询效率。
插入初始数据
表创建完成后,可插入测试数据或默认配置:
$sql = "INSERT INTO users (username, email) VALUES ('admin', 'admin@example.com')";
if ($conn->query($sql) === TRUE) {
echo "数据插入成功";
}
批量插入时,建议使用事务(BEGIN TRANSACTION、COMMIT)保证数据一致性。
关闭连接
操作完成后,需关闭数据库连接以释放资源:

$conn->close();
安全注意事项
- SQL注入防护:始终使用预处理语句(如PDO的
prepare和execute)替代直接拼接SQL。 - 权限控制:为数据库用户分配最小必要权限,避免使用root账户。
- 数据备份:定期备份数据库,防止数据丢失。
FAQs
Q1: 如何在PHP中检查数据库是否已存在?
A1: 可通过查询INFORMATION_SCHEMA数据库或使用CREATE DATABASE IF NOT EXISTS语句实现。
$sql = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$dbname'";
$result = $conn->query($sql);
if ($result->num_rows == 0) {
// 数据库不存在,执行创建
}
Q2: 为什么使用PDO比MySQLi更推荐?
A2: PDO支持多种数据库(如MySQL、PostgreSQL),具有更好的可移植性;同时其预处理语句语法更统一,且默认启用异常模式,便于错误处理。
标签: php数据库连接教程 php创建数据库表方法 php数据库操作入门指南