插件窝 干货文章 php查询数据库返回什么数据类型

php查询数据库返回什么数据类型

数组 返回 fetch MySQLi 282    来源:    2025-03-18

在PHP中,查询数据库并获取结果时,返回的数据类型取决于你使用的数据库扩展和具体的函数。以下是几种常见的数据库扩展及其返回的数据类型:

1. MySQLi (MySQL Improved)

  • mysqli_query()mysqli_fetch_assoc() / mysqli_fetch_array() / mysqli_fetch_row()

    • mysqli_query() 返回一个 mysqli_result 对象。
    • mysqli_fetch_assoc() 返回一个关联数组(array),键是列名,值是对应的数据。
    • mysqli_fetch_array() 返回一个混合数组(array),既包含关联数组也包含索引数组。
    • mysqli_fetch_row() 返回一个索引数组(array),键是数字索引。
    $result = mysqli_query($conn, "SELECT * FROM users");
    $row = mysqli_fetch_assoc($result); // 返回关联数组
    

2. PDO (PHP Data Objects)

  • PDO::query()PDOStatement::fetch()

    • PDO::query() 返回一个 PDOStatement 对象。
    • PDOStatement::fetch() 返回一个数组(array),默认是关联数组,但可以通过参数指定返回的类型(如 PDO::FETCH_ASSOCPDO::FETCH_NUMPDO::FETCH_BOTH 等)。
    $stmt = $pdo->query("SELECT * FROM users");
    $row = $stmt->fetch(PDO::FETCH_ASSOC); // 返回关联数组
    

3. MySQL (已弃用,不推荐使用)

  • mysql_query()mysql_fetch_assoc() / mysql_fetch_array() / mysql_fetch_row()

    • mysql_query() 返回一个资源类型(resource)。
    • mysql_fetch_assoc() 返回一个关联数组(array)。
    • mysql_fetch_array() 返回一个混合数组(array)。
    • mysql_fetch_row() 返回一个索引数组(array)。
    $result = mysql_query("SELECT * FROM users");
    $row = mysql_fetch_assoc($result); // 返回关联数组
    

4. 其他数据库扩展

  • 对于其他数据库扩展(如 pg_query() 用于 PostgreSQL),返回的数据类型也通常是资源类型或数组。

总结

  • MySQLiPDO 是现代PHP中推荐使用的数据库扩展。
  • 查询结果通常以数组(array)的形式返回,具体是关联数组还是索引数组取决于你使用的函数。
  • 如果你使用的是面向对象的风格,返回的可能是对象(如 mysqli_resultPDOStatement),然后你可以通过方法进一步获取数据。

示例代码

// MySQLi 示例
$conn = new mysqli("localhost", "user", "password", "database");
$result = $conn->query("SELECT * FROM users");
$row = $result->fetch_assoc(); // 返回关联数组

// PDO 示例
$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
$stmt = $pdo->query("SELECT * FROM users");
$row = $stmt->fetch(PDO::FETCH_ASSOC); // 返回关联数组

希望这些信息对你有帮助!如果你有更多问题,欢迎继续提问。