PDO是PHP中的一个用于访问数据库的轻量级的、一致性的接口。它可以访问多种数据库,如MySQL、PostgreSQL等,相对于MySQLi扩展,PDO支持更多的数据库类型。
PDO相比于MySQLi扩展,拥有更多的优点:
使用PDO连接数据库有两种方式:
<?php
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'username';
$password = 'password';
try {
$pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
<?php
$config = [
'dsn' => 'mysql:host=localhost;dbname=test',
'username' => 'username',
'password' => 'password'
];
try {
$pdo = new PDO(
$config['dsn'],
$config['username'],
$config['password']
);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
使用PDO的预处理语句,可以有效地防止SQL注入攻击。
<?php
$sql = 'SELECT * FROM users WHERE username = :username';
$stmt = $pdo->prepare($sql);
$username = 'john';
$stmt->bindParam(':username', $username);
$stmt->execute();
$result = $stmt->fetchAll();
?>
在上面的例子中,使用了PDO的预处理语句,使用bindParam方法将参数绑定到语句中,并使用execute方法执行语句。