php把查询结果转数组

PHP 把查询结果转数组:完整指南

在 PHP 中,将查询结果转换为数组是一项基本且至关重要的任务。它使你可以轻松地访问和操作数据库中的数据,将其转换为更易于处理的格式。本文将提供一个全面的指南,介绍在 PHP 中将查询结果转换为数组的不同方法。

1. 使用 `mysql_fetch_array()` 函数

`mysql_fetch_array()` 函数是 PHP 中将查询结果转换为数组的最基本方法。它返回一个关联和索引数组,其中包含结果集中的当前行。

语法:

php

$row = mysql_fetch_array($result);

示例:

php

$result = mysql_query("SELECT * FROM users");

while ($row = mysql_fetch_array($result)) {

echo "ID: " . $row['id'] . "
"; echo "Name: " . $row['name'] . "
"; echo "Email: " . $row['email'] . "

";

}

2. 使用 `mysqli_fetch_array()` 函数

`mysqli_fetch_array()` 函数是 `mysql_fetch_array()` 函数的 MySQLi 扩展版本。它返回一个关联和索引数组,其中包含结果集中的当前行。

语法:

php

$row = mysqli_fetch_array($result);

示例:

php

$mysqli = new mysqli("localhost", "username", "password", "database");

$result = $mysqli->query("SELECT * FROM users");

while ($row = mysqli_fetch_array($result)) {

echo "ID: " . $row['id'] . "
"; echo "Name: " . $row['name'] . "
"; echo "Email: " . $row['email'] . "

";

}

3. 使用 `PDO::fetch(PDO::FETCH_ASSOC)` 方法

PDO(PHP 数据对象)是一种用于与数据库交互的高级 PHP API。`PDO::fetch(PDO::FETCH_ASSOC)` 方法返回一个包含结果集中当前行的关联数组。

语法:

php

$row = $stmt->fetch(PDO::FETCH_ASSOC);

示例:

php

$dsn = 'mysql:dbname=database;host=localhost';

$username = 'username';

$password = 'password';

$dbh = new PDO($dsn, $username, $password);

$stmt = $dbh->prepare("SELECT * FROM users");

$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

echo "ID: " . $row['id'] . "
"; echo "Name: " . $row['name'] . "
"; echo "Email: " . $row['email'] . "

";

}

4. 使用 `PDO::fetchAll(PDO::FETCH_ASSOC)` 方法

`PDO::fetchAll(PDO::FETCH_ASSOC)` 方法返回一个包含结果集中所有行的关联数组。

语法:

php

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

示例:

php

$dsn = 'mysql:dbname=database;host=localhost';

$username = 'username';

$password = 'password';

$dbh = new PDO($dsn, $username, $password);

$stmt = $dbh->prepare("SELECT * FROM users");

$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {

echo "ID: " . $row['id'] . "
"; echo "Name: " . $row['name'] . "
"; echo "Email: " . $row['email'] . "

";

}

5. 使用 `array_map()` 函数和自定义匿名函数

`array_map()` 函数可以与自定义匿名函数结合使用,将查询结果转换为数组。匿名函数可用于从结果集中提取特定的值。

语法:

php

$rows = array_map(function($row) {

return array(

'id' => $row['id'],

'name' => $row['name'],

'email' => $row['email']

);

}, $result);

示例:

php

$result = mysql_query("SELECT * FROM users");

$rows = array_map(function($row) {

return array(

'id' => $row['id'],

'name' => $row['name'],

'email' => $row['email']

);

}, $result);

foreach ($rows as $row) {

echo "ID: " . $row['id'] . "
"; echo "Name: " . $row['name'] . "
"; echo "Email: " . $row['email'] . "

";

}

附加说明

关联数组与索引数组:关联数组使用字符串键来访问元素,而索引数组使用整数键。

结果集指针:`mysql_fetch_array()` 和 `mysqli_fetch_array()` 函数会自动将结果集指针移动到下一行。

错误处理:在使用 PHP 将查询结果转换为数组时务必进行错误处理,以防查询失败。

性能优化:在处理大量结果集时,可以使用 `PDO::fetchAll(PDO::FETCH_ASSOC)` 方法来提高性能。

结论

将 PHP 查询结果转换为数组是数据库编程中的一项关键任务。通过使用本文提供的不同方法,你可以轻松地将查询结果转换为可管理的和可访问的数组。通过仔细考虑每个方法的优缺点,你可以根据你的具体需求选择最合适的解决方案。