php连接数据库的详细步骤是什么?新手必看教程。
- 虚拟主机
- 2025-12-19
- 4
PHP连接数据库是Web开发中的基础操作,主要通过内置的数据库扩展或PDO(PHP Data Objects)实现,不同数据库(如MySQL、PostgreSQL、SQLite等)的连接方式略有差异,但核心逻辑相似,以下是详细步骤和示例:

选择连接方式
PHP支持多种数据库连接方式,包括:
- MySQLi扩展:专为MySQL设计,支持面向过程和面向对象两种风格。
- PDO:通用数据库抽象层,支持多种数据库,推荐使用。
- 原生MySQL扩展:已废弃,不推荐新项目使用。
使用MySQLi连接MySQL数据库
面向对象方式:
$host = 'localhost'; $username = 'root'; $password = ''; $database = 'test_db'; $conn = new mysqli($host, $username, $password, $database); if ($conn>connect_error) { die("连接失败: " . $conn>connect_error); } echo "连接成功";
面向过程方式:
$conn = mysqli_connect($host, $username, $password, $database); if (!$conn) { die("连接失败: " . mysqli_connect_error()); }
使用PDO连接数据库
PDO的优势在于支持多种数据库,只需修改DSN(数据源名称)即可切换数据库类型。

执行SQL查询
连接成功后,可通过以下方式执行查询:

- MySQLi: $result = $conn>query("SELECT * FROM users"); while ($row = $result>fetch_assoc()) { print_r($row); }
- PDO: $stmt = $conn>query("SELECT * FROM users"); while ($row = $stmt>fetch(PDO::FETCH_ASSOC)) { print_r($row); }
预处理语句(防止SQL载入)
预处理语句是安全操作的关键:
// PDO示例 $stmt = $conn>prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); $stmt>bindParam(':name', $name); $stmt>bindParam(':email', $email); $name = "John"; $email = "john@example.com"; $stmt>execute();
关闭连接
操作完成后应关闭连接:
// MySQLi $conn>close(); // PDO $conn = null;
常见数据库连接参数对比
| 参数 | MySQLi (面向对象) | PDO |
|---|---|---|
| 主机 | $host | host=$host |
| 用户名 | $username | $username |
| 密码 | $password | $password |
| 数据库 | $database | dbname=$dbname |
| 错误处理 | $conn>connect_error | trycatch |
相关问答FAQs
Q1: PHP连接数据库时出现“Too many connections”错误怎么办?
A: 此错误通常表示数据库连接数超过限制,解决方案包括:优化代码及时关闭连接、增加数据库最大连接数(如MySQL的max_connections参数)、使用连接池技术。
Q2: PDO和MySQLi如何选择?
A: 如果项目仅使用MySQL,MySQLi性能更优;若需支持多种数据库或注重安全性(如预处理语句的兼容性),PDO是更好的选择,PDO还支持命名参数,可提升代码可读性。