📜  pdo 示例 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:07.091000             🧑  作者: Mango

PDO 示例 - PHP

在 PHP 中,使用 PDO(PHP 数据对象)扩展库来连接和操作数据库非常方便。它提供了一种抽象的方式来访问不同类型的数据库,包括 MySQL、SQLite、Oracle 等。

连接到数据库

要使用 PDO 连接到数据库,需要提供数据库的 DSN(数据源名称)、用户名和密码等信息。以下是连接到 MySQL 数据库的示例代码:

// 数据库信息
$dsn = 'mysql:host=localhost;dbname=example';
$username = 'root';
$password = '';

// 连接数据库
try {
    $pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

在上面的代码中,我们使用 $dsn 变量来设置 MySQL 连接参数。其中,host 表示数据库主机名或 IP 地址,dbname 表示要连接的数据库名称。如果需要,还可以指定端口号和字符集等参数。

然后,我们使用 PDO 类的构造函数来创建一个 PDO 对象。如果连接失败,则会抛出 PDOException 异常,我们可以在 catch 块中处理该异常。

查询数据

PDO 提供了一系列方法来执行 SQL 查询并返回结果。以下是一个查询示例,我们使用 query() 方法来执行 SELECT SQL,然后使用 fetchAll() 方法将结果集以数组的形式返回:

// 查询数据
$stmt = $pdo->query('SELECT * FROM users');
$users = $stmt->fetchAll();

// 遍历结果
foreach ($users as $user) {
    echo $user['id'] . ': ' . $user['name'] . '<br>';
}

在上面的代码中,我们使用 $stmt 变量来保存查询语句的执行结果。然后,我们将结果集转换为 PHP 数组,通过 foreach 循环遍历其中的每条记录并输出。

插入数据

要插入一条新数据,可以使用 PDO 的 prepare() 方法和 execute() 方法来执行 INSERT SQL。以下是一个插入示例:

// 插入数据
$stmt = $pdo->prepare('INSERT INTO users (name, age) VALUES (:name, :age)');
$stmt->execute(array(
    ':name' => 'John',
    ':age' => 30
));

// 获取新数据的 ID
$id = $pdo->lastInsertId();
echo 'New user added with ID ' . $id;

在上面的代码中,我们先使用 prepare() 方法来准备 SQL 语句,其中的 :name:age 相当于参数占位符。然后,使用 execute() 方法并传入一个关联数组来执行该语句。

在执行 INSERT SQL 后,我们可以使用 lastInsertId() 方法获取新数据在数据库中的 ID。

更新数据

要更新一条数据,可以使用 PDO 的 prepare() 方法和 execute() 方法来执行 UPDATE SQL。以下是一个更新示例:

// 更新数据
$stmt = $pdo->prepare('UPDATE users SET age = :age WHERE id = :id');
$stmt->execute(array(
    ':id' => 1,
    ':age' => 40
));

// 获取受影响行数
$count = $stmt->rowCount();
echo $count . ' rows updated';

在上面的代码中,我们先使用 prepare() 方法来准备 SQL 语句,并使用 execute() 方法传入一个关联数组来执行该语句。其中,:id:age 分别表示要更新的数据的 ID 和新的年龄。

在执行 UPDATE SQL 后,我们可以使用 rowCount() 方法获取受影响的行数。

删除数据

要删除一条数据,可以使用 PDO 的 prepare() 方法和 execute() 方法来执行 DELETE SQL。以下是一个删除示例:

// 删除数据
$stmt = $pdo->prepare('DELETE FROM users WHERE id = :id');
$stmt->execute(array(
    ':id' => 1
));

// 获取受影响行数
$count = $stmt->rowCount();
echo $count . ' rows deleted';

在上面的代码中,我们先使用 prepare() 方法来准备 SQL 语句,并使用 execute() 方法传入一个关联数组来执行该语句。其中,:id 表示要删除的数据的 ID。

在执行 DELETE SQL 后,我们可以使用 rowCount() 方法获取受影响的行数。

总结

以上就是 PDO 示例的介绍,使用 PDO 连接、查询、插入、更新和删除数据库非常方便。如果您想了解更多关于 PDO 的用法,请查看官方文档。