📅  最后修改于: 2023-12-03 14:41:10.521000             🧑  作者: Mango
在 PHP 中,数据库查询结果通常使用 fetch 函数来获取,并且有两种不同的使用方法:fetch 数组和 fetch_assoc。这两种方法返回的结果有所不同,下面我们来详细讨论它们的差异。
fetch()
方法返回一个由数字键值对构成的索引数组。在获取该数组时,可以通过数字下标访问每一个值。例如:
$query = $pdo->query("SELECT id, name, email FROM users");
while ($row = $query->fetch()) {
echo $row[0] . ' ' . $row[1] . ' ' . $row[2] . '<br />';
}
与 fetch 数组不同,fetch_assoc()
方法返回一个关联数组,其中键是列名。这意味着在使用 fetch_assoc 方法时,可以通过列名获取到对应列的值。例如:
$query = $pdo->query("SELECT id, name, email FROM users");
while ($row = $query->fetch_assoc()) {
echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'] . '<br />';
}
因此,fetch 数组返回的是一个数字索引数组,而 fetch_assoc 返回的是一个列名关联的数组。当需要同时获取多列数据时,使用 fetch_assoc 更加方便,因为不需要在代码中使用索引检索每个值。例如,如果要获取查询结果中的全部列,我们可以这样写:
$query = $pdo->query("SELECT * FROM users");
while ($row = $query->fetch_assoc()) {
echo $row['id'] . ' ' . $row['name'] . ' ' . $row['email'] . '<br />';
}
与此相反,如果要获取特定的列,使用 fetch 数组就更加合适:
$query = $pdo->query("SELECT name, email FROM users");
while ($row = $query->fetch()) {
echo $row[0] . ' ' . $row[1] . '<br />';
}
这些 fetch 函数的区别在于它们读取数据的方式。使用哪种方法取决于查询的特定需求。无论是 fetch 数组还是 fetch_assoc 方法都是可以使用的。