PHP中如何使用PDO操作数据库?

2025-12发布18次浏览

使用PDO(PHP Data Objects)操作数据库是PHP中一种非常流行且强大的方法,它提供了一个数据访问抽象层,使得使用不同的数据库系统变得统一。以下是使用PDO操作数据库的基本步骤和示例代码。

基本步骤

  1. 创建PDO实例:首先,需要创建一个PDO实例来连接数据库。
  2. 执行SQL语句:使用PDO实例执行SQL语句。
  3. 获取结果:根据执行的SQL语句类型,获取结果集或影响行数。
  4. 错误处理:使用PDO提供的错误处理机制来处理可能出现的错误。
  5. 关闭连接:完成数据库操作后,关闭PDO连接。

示例代码

1. 连接数据库

假设我们使用MySQL数据库,首先需要创建一个PDO实例。以下是一个示例:

<?php
$host = '127.0.0.1'; // 数据库服务器地址
$dbname = 'testdb';   // 数据库名
$username = 'root';   // 数据库用户名
$password = '';       // 数据库密码

try {
    // 创建PDO实例
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    
    // 设置错误模式为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "连接成功";
} catch (PDOException $e) {
    // 处理连接错误
    echo "连接失败: " . $e->getMessage();
}
?>

2. 执行查询

假设我们要查询一个表中的数据,以下是如何使用PDO执行查询:

<?php
try {
    // 准备SQL查询
    $stmt = $pdo->prepare("SELECT * FROM users");
    
    // 执行查询
    $stmt->execute();
    
    // 获取查询结果
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // 输出结果
    foreach ($results as $row) {
        echo "ID: " . $row['id'] . ", Name: " . $row['name'] . "<br>";
    }
} catch (PDOException $e) {
    echo "查询失败: " . $e->getMessage();
}
?>

3. 插入数据

以下是如何使用PDO插入数据:

<?php
try {
    // 准备SQL插入语句
    $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
    
    // 绑定参数
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);
    
    // 设置参数值
    $name = 'John Doe';
    $email = 'john@example.com';
    
    // 执行插入
    $stmt->execute();
    
    echo "插入成功";
} catch (PDOException $e) {
    echo "插入失败: " . $e->getMessage();
}
?>

4. 更新数据

以下是如何使用PDO更新数据:

<?php
try {
    // 准备SQL更新语句
    $stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");
    
    // 绑定参数
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':id', $id);
    
    // 设置参数值
    $name = 'Jane Doe';
    $id = 1;
    
    // 执行更新
    $stmt->execute();
    
    echo "更新成功";
} catch (PDOException $e) {
    echo "更新失败: " . $e->getMessage();
}
?>

5. 删除数据

以下是如何使用PDO删除数据:

<?php
try {
    // 准备SQL删除语句
    $stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
    
    // 绑定参数
    $stmt->bindParam(':id', $id);
    
    // 设置参数值
    $id = 1;
    
    // 执行删除
    $stmt->execute();
    
    echo "删除成功";
} catch (PDOException $e) {
    echo "删除失败: " . $e->getMessage();
}
?>

错误处理

使用PDO时,可以通过设置错误模式来处理错误。例如,将错误模式设置为异常,这样在执行SQL语句时如果出现错误,会抛出异常:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

这样,可以通过捕获异常来处理错误:

try {
    // SQL语句
} catch (PDOException $e) {
    echo "错误: " . $e->getMessage();
}

关闭连接

完成数据库操作后,可以关闭PDO连接:

$pdo = null;