📜  php之PDO(1)

📅  最后修改于: 2023-12-03 15:18:34.094000             🧑  作者: Mango

PHP之PDO

简介

PDO (PHP Data Objects) 是 PHP5 中一个面向对象的数据库抽象层,提供一种统一的接口与多种数据库交互。PDO 提供了简单易用的 API,可在不同类型的数据库之间进行切换。支持的数据库包括 MySQL、PostgreSQL、Oracle、Microsoft SQL Server 等。

安装

在 PHP5 中,PDO 已经默认安装,无需二次安装。

使用
连接数据库

使用 PDO 连接数据库需要先创建一个 PDO 对象,我们需要提供一些连接数据库的信息,如数据库类型、服务器地址、数据库名、用户名、密码等。

$pdo = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', '123456');

此处以连接 MySQL 数据库为例。代码中的 mysql 表示数据库类型,127.0.0.1 表示服务器地址,test 表示数据库名,root 表示用户名,123456 表示密码。

执行 SQL 语句

使用 PDO 执行 SQL 语句需要调用 PDO 对象的 query 方法,该方法可以执行任何 SQL 语句,如 SELECT、INSERT、UPDATE、DELETE 等。

$sql = "select * from user";
$stmt = $pdo->query($sql);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);

上面的代码中,我们执行了一个 select * from user 的 SQL 查询语句,将结果以数组形式返回存储在 $result 中,并打印出来。其中,fetchALL 方法的第一个参数 PDO::FETCH_ASSOC 表示返回关联数组。

预处理 SQL 语句

PDO 提供了一种有效的预处理机制,可以有效地防止 SQL 注入。预处理机制可以让我们在执行 SQL 语句之前先定义好占位符,然后再将真正的参数绑定到这些占位符上,最后再执行 SQL 语句。

$sql = "select * from user where id=:id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);

上面的代码中,我们使用预处理机制定义了一个占位符 :id,使用 bindParam 方法将 $id 绑定到 :id 上,最后执行 SQL 查询语句,将结果存储在 $result 中并打印出来。

异常处理

PDO 提供了异常处理机制,可以让我们更加容易地处理错误信息。当执行 SQL 语句发生错误时,PDO 会抛出异常,我们可以通过 try-catch 语句来捕获异常并处理错误信息。

try {
    $sql = "select * from user";
    $stmt = $pdo->query($sql);
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($result);
} catch(PDOException $e) {
    echo $e->getMessage();
}

上面的代码中,我们使用了 try-catch 语句来捕获异常,并使用 getMessage 方法获取异常信息。

总结

PDO 是一个简单易用的 PHP 数据库抽象层,支持多种数据库类型,提供了预处理机制和异常处理机制等。熟练掌握 PDO 的使用,可以有效地提高程序开发效率和安全性。