<?php function lgdb(){ $host = 'localhost'; // 数据库主机地址 $dbname = 'chat'; // 数据库名称 $username = 'root'; // 用户名 $password = '150abcd051'; // 密码 try { $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置错误模式为异常处理 } catch (PDOException $e) { die('Database connection failed: ' . $e->getMessage()); } }; ?>
时间: 2025-08-30 22:09:25 AIGC 浏览: 8
<think>好的,用户需要PHP中使用PDO连接MySQL的示例代码。首先,我得回忆一下PDO的基本用法。记得PDO需要数据源名称(DSN)、用户名和密码。然后,可能需要设置错误模式为异常,方便调试。
用户提供的引用里有几个例子。引用[1]中的代码是直接new一个PDO对象,参数包括host、dbname、用户名和密码。引用[2]提到预处理和事务功能,所以示例中可以加入prepare和execute的部分。引用[3]是关于ThinkPHP的,可能用户需要的是原生PHP,所以暂时不考虑框架部分。
接下来,要确保代码正确。连接部分应该用try-catch块捕获异常。设置错误模式为ERRMODE_EXCEPTION是个好习惯。然后,执行一个查询示例,比如查询用户表,使用预处理语句防止SQL注入。
可能用户还需要解释代码的各个部分,比如DSN的组成,参数的意义,以及为什么要用预处理。需要提到PDO的优点,如跨数据库支持、安全性等。同时,注意关闭连接的方式,设为null即可。
最后,检查是否符合用户的要求:示例代码、说明、注意事项。另外,用户可能希望了解不同的配置情况,比如不同端口或字符集,所以补充在注意事项里。确保引用的内容正确对应,比如引用[1]中的连接字符串,引用[2]中的预处理部分。</think>PHP中使用PDO连接MySQL数据库的标准实现步骤如下:
### 一、基础连接实现
```php
<?php
$host = '127.0.0.1'; // 数据库服务器地址
$dbname = 'testdb'; // 数据库名称
$user = 'root'; // 数据库用户名
$pass = 'password'; // 数据库密码
try {
// 创建PDO实例
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
// 设置错误模式为异常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "数据库连接成功";
} catch (PDOException $e) {
die("连接失败: " . $e->getMessage());
}
// 关闭连接
$pdo = null;
?>
```
### 二、关键参数说明
1. **DSN字符串**:`mysql:host=主机地址;dbname=数据库名;charset=字符集`
- 必须包含数据库驱动类型(mysql)
- 建议指定字符集(推荐utf8mb4)
2. **属性设置**:
```php
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); // 设置默认获取模式为关联数组
```
### 三、查询示例(带预处理)
```php
try {
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute([':id' => 1]);
$result = $stmt->fetchAll();
print_r($result);
} catch (PDOException $e) {
echo "查询失败: " . $e->getMessage();
}
```
### 四、最佳实践建议
1. **错误处理**:始终使用try-catch块捕获异常
2. **安全防护**:使用预处理语句防止SQL注入
3. **连接复用**:建议将连接对象封装为单例模式[^2]
4. **字符集设置**:必须在DSN中显式声明字符集
[^1]: 基础连接语法参考自PDO官方文档实现
[^2]: 预处理机制可有效提升查询安全性
相关问题
阅读全文
相关推荐















