要从数据库中获取结果,您可以执行以下操作:
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll();
foreach($result as $r) {
echo "<pre>";
print_r($r);
echo "</pre>";
}
但它似乎无法使用fetchAll
,例如:
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$result = $sth->execute();
foreach($result as $r) {
echo "<pre>";
print_r($r);
echo "</pre>";
}
那有什么区别?
答案 0 :(得分:3)
fetchAll
将读入数据库结果集中的所有行,并从中生成一个数组,将其全部保存在内存中。迭代结果集将从服务器一次获取一行,这将节省PHP端的资源(但可能在数据库服务器上使用更多资源,具体取决于数据库实现)。
答案 1 :(得分:1)
首先我假设你使用的是php PDO
使用fetchAll,您可以将Fetch模式指定为参数,fetchall为返回的行提供更大的灵活性,fetchall将从数据库中读取所有行并转换为数组。
与我猜测的简单执行相比,fetchall在资源管理方面更有效率。 execute返回的资源也是bool