PHP常见技术问题:PDO基础技术教程
一、PDO概述
PDO(PHP Data Objects)是PHP访问数据库的扩展,它提供了统一的数据访问抽象层。PDO 支持多种数据库,包括 MySQL、PostgreSQL、SQLite、SQL Server 等。使用 PDO 可以提高代码的可移植性,同时增强数据库操作的安全性和灵活性。
二、PDO基础使用
首先,我们需要创建一个 PDO 对象来连接到数据库:
try {
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $username, $password, $options);
echo "Database connected successfully!";
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
三、查询操作
以下是使用 PDO 执行 SELECT 查询的步骤:
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([1]);
$user = $stmt->fetch();
print_r($user);
// 输出: Array ( [id] => 1 [name] => John Doe [email] => john@example.com )
四、插入操作
下面是使用 PDO 执行 INSERT 操作的示例:
$sql = "INSERT INTO users (name, email) VALUES (?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute(['Jane Doe', 'jane@example.com']);
echo "New record created successfully";
五、更新操作
以下是使用 PDO 执行 UPDATE 操作的步骤:
$sql = "UPDATE users SET email = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute(['jane.new@example.com', 1]);
echo "Record updated successfully";
六、删除操作
使用 PDO 执行 DELETE 操作的示例如下:
$sql = "DELETE FROM users WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([1]);
echo "Record deleted successfully";
七、总结
通过上面的例子,你可以看到 PDO 提供了非常简洁和强大的方式来操作数据库。PDO 预处理语句可以有效防止 SQL 注入攻击,同时,PDO 的异常处理机制也使得调试和管理数据库操作变得更加容易。
再次强调,使用预处理语句和参数绑定是防止 SQL 注入的关键。在任何情况下,都应该避免直接将用户输入嵌入到 SQL 语句中。