PHP连接MySQL数据库方法详解
推荐使用PDO连接MySQL,因其支持预处理语句、多数据库兼容及更好的安全性。示例中通过设置异常模式、utf8mb4字符集和禁用模拟预处理,确保安全与可维护性;MySQLi适用于纯MySQL项目,但PDO更利于长期扩展。
推荐使用PDO连接MySQL,因其支持预处理语句、多数据库兼容及更好的安全性。示例中通过设置异常模式、utf8mb4字符集和禁用模拟预处理,确保安全与可维护性;MySQLi适用于纯MySQL项目,但PDO更利于长期扩展。

PHP连接MySQL数据库最推荐的方式是使用PDO(PHP Data Objects)或MySQLi的面向对象模式。这两种方式都支持预处理语句,能有效防止SQL注入,提升应用安全性。从兼容性和功能扩展性来看,PDO更受推荐,尤其适合需要支持多种数据库的项目。
使用PDO连接MySQL(推荐做法)
PDO提供统一的数据库接口,支持多种数据库,代码可移植性强。以下是一个安全、可复用的PDO连接示例:
try {
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';
$charset = 'utf8mb4';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
$pdo = new PDO($dsn, $username, $password, $options);} catch (PDOException $e) {
throw new PDOException($e->getMessage(), (int)$e->getCode());
}
说明与建议:
- 设置
PDO::ATTR_ERRMODE为EXCEPTION,便于捕获数据库错误 - 使用
utf8mb4字符集,完整支持Emoji和四字节UTF-8字符 - 关闭预处理模拟
PDO::ATTR_EMULATE_PREPARES,确保真实预处理,增强安全性 - 将连接参数存入配置文件或环境变量,避免硬编码
使用MySQLi面向对象方式连接
MySQLi专为MySQL设计,功能丰富,适用于只使用MySQL的项目:
$host = 'localhost'; $dbname = 'your_database'; $username = 'your_username'; $password = 'your_password';$mysqli = new mysqli($host, $username, $password, $dbname);
if ($mysqli->connect_error) { die('连接失败: ' . $mysqli->connect_error); }
$mysqli->set_charset('utf8mb4');
注意点:
- 务必检查
connect_error,避免静默失败 - 手动调用
set_charset确保字符编码一致 - 执行查询时优先使用
prepare()方法防止SQL注入
安全操作数据库查询
无论使用PDO还是MySQLi,都应使用预处理语句处理用户输入:
PDO示例:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
$user = $stmt->fetch();
MySQLi示例:
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();
基本上就这些。选择PDO更适合长期维护和扩展,MySQLi则在纯MySQL环境中表现良好。关键是始终使用预处理,管理好连接生命周期,不复杂但容易忽略。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















