首先需要创建一个PDO对象来连接数据库。
连接数据库需要以下参数:
下面是连接MySQL数据库的示例:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功";
}
catch(PDOException $e)
{
echo "连接失败: " . $e->getMessage();
}
?>
通过PDO对象执行SQL语句的方法是 exec()
和 query()
。
exec()
用于执行不返回结果集的语句,例如 INSERT、UPDATE、DELETE。query()
用于执行返回结果集的语句,例如 SELECT。下面是一个使用 query()
方法查询数据的示例:
<?php
$stmt = $conn->query("SELECT * FROM MyGuests");
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($results as $row) {
echo $row['firstname'] . " " . $row['lastname'] . "<br>";
}
?>
预处理语句可以防止 SQL 注入攻击,并且可以多次执行相同的语句,提高性能。
使用PDO预处理语句的步骤如下:
prepare()
方法准备SQL语句。bindParam()
方法绑定参数。execute()
方法执行语句。下面是一个使用预处理语句插入数据的示例:
<?php
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);
// 插入行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
// 插入其他行
$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();
// 插入其他行
$firstname = "Julie";
$lastname = "Dooley";
$email = "julie@example.com";
$stmt->execute();
echo "新记录插入成功";
?>