PHP PDO 学习笔记

概述

PHP PDO(PHP Data Object)是一种轻量级的数据库操作工具,它提供了一套统一的 API 接口,可以用于访问多种类型的数据库。相比于传统的 MySQLi 扩展,PDO 具有更好的可移植性和安全性。

连接数据库

使用 PDO 连接数据库的过程包括以下几个步骤:

1. 创建 PDO 实例

phpCopy Code
$dsn = 'mysql:host=localhost;dbname=myDB'; $username = 'myUsername'; $password = 'myPassword'; $options = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ); try { $pdo = new PDO($dsn, $username, $password, $options); } catch (PDOException $e) { die('Connection failed: ' . $e->getMessage()); }

其中 $dsn 表示连接字符串,包括主机和数据库名;$username$password 表示登录数据库的用户名和密码;$options 是一个数组,表示设置 PDO 连接选项,例如开启异常模式。

2. 准备 SQL 语句

使用 PDO 执行 SQL 语句需要预先准备好语句模板,然后填充参数。例如:

phpCopy Code
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username'); $stmt->bindParam(':username', $username);

其中 prepare() 方法用于准备 SQL 语句,并返回一个 PDOStatement 对象;bindParam() 方法用于绑定参数,避免 SQL 注入攻击。

3. 执行 SQL 语句

phpCopy Code
$stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

使用 execute() 方法执行 SQL 语句,并将结果保存在 $results 变量中。

4. 处理结果

phpCopy Code
foreach ($results as $row) { echo $row['id'] . ': ' . $row['username'] . "\n"; }

实例

下面是一个完整的实例,查询数据库中的用户列表:

phpCopy Code
$dsn = 'mysql:host=localhost;dbname=myDB'; $username = 'myUsername'; $password = 'myPassword'; $options = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ); try { $pdo = new PDO($dsn, $username, $password, $options); } catch (PDOException $e) { die('Connection failed: ' . $e->getMessage()); } $stmt = $pdo->prepare('SELECT * FROM users WHERE username LIKE :username'); $stmt->bindParam(':username', $username); $username = '%john%'; $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($results as $row) { echo $row['id'] . ': ' . $row['username'] . "\n"; }

以上代码会连接到名为 myDB 的数据库,并从 users 表中查询用户名中包含 john 的所有用户,并输出他们的 ID 和用户名。