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 Codeforeach ($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 和用户名。