📜  php pdo 有结果 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:30.916000             🧑  作者: Mango

PHP PDO 有结果

介绍

PHP PDO(PHP Data Objects)是 PHP 中的一个扩展模块,用于执行数据库操作。与 MySQLi 扩展不同,PDO 支持多种数据库,如 MySQL、PostgreSQL、SQLite 等,也支持多种数据库连接方式,如本地文件、网络套接字等。

其中,在 PHP PDO 中,执行查询并获取结果是最常见的操作之一。本文将从获取查询结果的角度,介绍如何在 PHP PDO 中执行查询,并获得返回的结果。

执行查询并获取结果

要在 PHP PDO 中执行查询并获取结果,通常需要以下步骤:

  1. 建立数据库连接:使用 PDO 类的构造函数,传递数据库连接参数,建立与数据库的连接。例如:

    $dbh = new PDO('mysql:host=localhost;dbname=mydb', $user, $pass);
    
  2. 执行查询语句:使用 PDO 对象的 query()prepare() 方法,执行查询语句。例如:

    $stmt = $dbh->query('SELECT * FROM mytable');
    

    或者:

    $stmt = $dbh->prepare('SELECT * FROM mytable WHERE id = ?');
    $stmt->execute([$id]);
    

    其中,如果查询语句中包含占位符(如 ?:name),则需要使用 prepare() 方法,并在后续执行时,使用 execute() 方法,传递占位符对应的值。

  3. 获取查询结果:使用 PDOStatement 对象的 fetch() 方法,获取查询结果。例如:

    while ($row = $stmt->fetch()) {
        // 使用 $row 中的数据
    }
    

    在获取查询结果时,方法可传递参数,用于指定返回结果的格式。例如:

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        // 获取关联数组格式的结果
    }
    

    或者:

    $result = $stmt->fetchAll(PDO::FETCH_OBJ);
    

    其中,常用的结果格式有 PDO::FETCH_ASSOC(关联数组)、PDO::FETCH_NUM(数字索引数组)、PDO::FETCH_OBJ(对象)等。

示例代码

以下是一个使用 PHP PDO 执行查询并获取结果的示例代码:

<?php

try {
    $dbh = new PDO('mysql:host=localhost;dbname=mydb', $user, $pass);
    
    $stmt = $dbh->prepare('SELECT * FROM mytable WHERE id = ?');
    $stmt->execute([$id]);
    
    $results = [];

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $results[] = $row;
    }
    
    print_r($results);
    
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>
结论

PHP PDO 是一种强大的扩展模块,用于执行数据库操作。执行查询并获取结果是其中一个重要的操作,在实际的 PHP 应用中,也经常需要执行这一操作。通过本文的介绍,相信大家已经对 PHP PDO 中执行查询并获取结果有了一定的了解。