在PHP中建立数据库连接是Web开发中的基础操作,通常用于动态网站与数据库的交互,无论是存储用户数据、查询内容还是管理信息,数据库连接都是不可或缺的一环,本文将详细介绍如何使用PHP建立数据库连接,涵盖不同场景下的实现方法、注意事项以及常见问题的解决方案。

准备工作
在开始编写PHP代码之前,确保你已经具备以下条件:
- 已安装PHP环境:本地或服务器上需运行PHP,版本建议为7.0或更高。
- 数据库服务器:如MySQL、MariaDB等,并已创建数据库和用户。
- 数据库凭证:包括主机名、用户名、密码和数据库名称。
使用MySQLi扩展建立连接
MySQLi(MySQL Improved)是PHP中用于操作MySQL数据库的扩展,支持面向过程和面向对象两种方式,以下是具体步骤:
面向过程的连接方式
// 数据库连接参数
$host = "localhost";
$username = "your_username";
$password = "your_password";
$database = "your_database";
// 建立连接
$conn = mysqli_connect($host, $username, $password, $database);
// 检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功!";
面向对象的连接方式
// 数据库连接参数
$host = "localhost";
$username = "your_username";
$password = "your_password";
$database = "your_database";
// 创建连接对象
$conn = new mysqli($host, $username, $password, $database);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功!";
注意事项:
- 如果主机不是本地(如远程服务器),需将
$host改为实际IP地址或域名。 - 密码中包含特殊字符时,需确保转义处理或使用安全字符串。
使用PDO扩展建立连接
PDO(PHP Data Objects)是另一种数据库访问方式,支持多种数据库(如MySQL、PostgreSQL、SQLite等),以下是PDO连接示例:

// 数据库连接参数
$host = "localhost";
$username = "your_username";
$password = "your_password";
$database = "your_database";
// DSN(数据源名称)
$dsn = "mysql:host=$host;dbname=$database;charset=utf8mb4";
// 创建PDO连接
try {
$conn = new PDO($dsn, $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功!";
} catch (PDOException $e) {
die("连接失败: " . $e->getMessage());
}
PDO的优势:
- 支持多种数据库,迁移成本低。
- 默认使用预处理语句,防止SQL注入。
关闭数据库连接
操作完成后,需关闭连接以释放资源:
- MySQLi面向过程:
mysqli_close($conn); - MySQLi面向对象:
$conn->close(); - PDO:
$conn = null;
错误处理与调试
数据库连接时可能会遇到错误,常见的包括:
- 连接超时:检查数据库服务是否运行,或调整
mysqli_connect_timeout参数。 - 权限不足:确保数据库用户有访问指定数据库的权限。
- 字符集问题:在连接字符串中添加
charset=utf8mb4,避免乱码。
安全建议
- 避免硬编码凭证:将数据库信息存储在环境变量或配置文件中,而非直接写在代码里。
- 使用预处理语句:防止SQL注入攻击,尤其在PDO中推荐使用。
- 加密敏感数据:如密码需加密后存储。
相关问答FAQs
问题1:如何解决“Too many connections”错误?
解答:该错误表示数据库连接数超过限制,可通过以下方式解决:

- 检查
max_connections参数(在MySQL配置文件中),适当增加其值。 - 优化代码,确保及时关闭不再使用的连接。
- 使用连接池技术(如PDO的持久连接)。
问题2:PDO和MySQLi如何选择?
解答:
- PDO:适合需要支持多种数据库的项目,或注重安全性的场景(默认预处理语句)。
- MySQLi:适合仅使用MySQL的项目,且需要利用其高级特性(如多语句执行)。 你已经掌握了PHP建立数据库连接的基本方法,根据项目需求选择合适的扩展,并遵循安全实践,可以确保数据库交互的稳定与安全。