📅  最后修改于: 2023-12-03 15:33:30.994000             🧑  作者: Mango
在 PHP 中,使用 PDO(PHP 数据对象)扩展可以连接多种类型的数据库。
首先需要使用相应的驱动程序,例如连接 MySQL 数据库:
<?php
$dsn = 'mysql:host=localhost;dbname=mydb';
$username = 'username';
$password = 'password';
try {
$conn = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
其中 $dsn
是数据源名称, 包含数据库类型、主机名、数据库名称等信息。 $username
和 $password
是数据库的用户名和密码。
连接成功后,$conn
将包含一个 PDO 实例,可以用于执行查询和操作数据。
查询数据可以使用 PDOStatement
类的实例 query()
方法:
$sql = 'SELECT name, age FROM mytable';
$stmt = $conn->query($sql);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['name'] . ': ' . $row['age'] . "\n";
}
这个例子中,执行了一个查询语句,然后通过 fetch()
方法获取每一行数据。
插入数据可以使用 PDO
类实例的 exec()
方法:
$sql = "INSERT INTO mytable (name, age) VALUES ('Tom', 30)";
$conn->exec($sql);
为了防止 SQL 注入攻击,建议使用预处理语句。预处理语句可以通过 PDO
类实例的 prepare()
方法创建。
$sql = "SELECT name, age FROM mytable WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bindParam(1, $id);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['name'] . ': ' . $row['age'] . "\n";
}
这个例子中,使用了占位符 ?
代替硬编码的值,然后使用 bindParam()
方法将 $id
绑定到占位符上。最后执行查询并获取数据。
使用 PHP PDO 连接数据库十分方便,可以连接多种类型的数据库,支持事务,而且可以防止 SQL 注入攻击。因此,建议开发人员在进行数据库编程时使用 PDO 扩展。