这个 PHP postgreSQL PDO 语句没有返回任何结果。我预计会看到几行。我做错了什么?如何检索它们并将它们放入对象或数组中?
$sth = $dbh->prepare('SELECT * FROM address');
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
while($row = $sth->fetch()) {
echo $row['StreetAddress1'] . "\n";
}
考虑结果集是一个堆栈,每个 fetch() 调用都会弹出一个结果行。您在 while 循环之外调用了一次 fetch,然后显然丢弃了 $result。这意味着一行结果数据消失了。至于将它们放入对象/数组中,这取决于您。可以很简单:
$addresses[] = $row['StreetAddress1']
循环内。
任何一个
while($row = $sth->fetch()) {
...
}
-- or --
$rows = $sth->fetchAll();
foreach($rows as $row) {
...
}