PHP连接MySQL常用MySQLi和PDO,推荐使用PDO因其支持多种数据库、安全性高。首先建立数据库连接,PDO通过try-catch捕获异常,MySQLi则直接实例化;接着执行增删改查操作,如INSERT插入数据、SELECT查询结果,均应使用预处理语句防止SQL注入;最后正确关闭连接。掌握这些基础操作可实现高效安全的数据交互。

PHP连接MySQL数据库是动态网站开发中最基础也是最重要的环节之一。通过PHP与MySQL的交互,可以实现用户注册、登录、数据存储和读取等核心功能。下面介绍几种常用且有效的方法来实现PHP与MySQL的数据交互。
使用MySQLi扩展连接数据库
MySQLi(MySQL Improved)是PHP中用于操作MySQL数据库的原生扩展,支持面向过程和面向对象两种写法,适合大多数中小型项目。
面向对象方式示例:
$host = 'localhost'; $username = 'root'; $password = ''; $database = 'test_db';$conn = new mysqli($host, $username, $password, $database);
立即学习“PHP免费学习笔记(深入)”;
if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "数据库连接成功";
执行查询的操作:
$sql = "SELECT id, name, email FROM users"; $result = $conn->query($sql);if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "ID: " . $row["id"]. " - 名字: " . $row["name"]. " - 邮箱: " . $row["email"]. "
"; } } else { echo "无结果"; }
使用PDO连接数据库(推荐)
PDO(PHP Data Objects)是一种数据库抽象层,支持多种数据库类型,安全性高,灵活性强,尤其适合需要兼容多种数据库或注重安全性的项目。
DESTOON B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案。系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放。模型化的开发思路,可扩展或删除任何功能;创新的缓存技术与数据库设计,可负载千万级别数据容量及访问。
基本连接方式:
$host = 'localhost'; $dbname = 'test_db'; $user = 'root'; $pass = '';try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "PDO连接成功"; } catch(PDOException $e) { die("连接失败: " . $e->getMessage()); }
使用预处理语句防止SQL注入:
$stmt = $pdo->prepare("SELECT * FROM users WHERE age > ?");
$stmt->execute([18]);
while($row = $stmt->fetch()) {
echo "名字: " . $row['name'] . " - 年龄: " . $row['age'] . "
";
}
常见数据库操作方法
无论是MySQLi还是PDO,常见的数据库操作包括增、删、改、查,以下是关键操作的简要说明:
- 插入数据: 使用INSERT语句,配合预处理避免拼接SQL字符串
- 更新数据: 使用UPDATE语句,指定条件防止误改全表
- 删除数据: 使用DELETE语句,务必确认WHERE条件准确
- 查询数据: SELECT是最常用的语句,可结合JOIN、WHERE、ORDER BY等子句
例如使用PDO插入一条记录:
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute(['张三', 'zhangsan@example.com']);
echo "数据插入成功,ID为:" . $pdo->lastInsertId();
基本上就这些。选择MySQLi还是PDO取决于项目需求,但PDO因更强的安全性和扩展性更受现代PHP开发者青睐。掌握好数据库连接和预处理语句,就能高效、安全地完成PHP与MySQL的数据交互。










