0

这个 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";
} 
4

2 回答 2

1

考虑结果集是一个堆栈,每个 fetch() 调用都会弹出一个结果行。您在 while 循环之外调用了一次 fetch,然后显然丢弃了 $result。这意味着一行结果数据消失了。至于将它们放入对象/数组中,这取决于您。可以很简单:

$addresses[] = $row['StreetAddress1']

循环内。


任何一个

while($row = $sth->fetch()) {
   ...
}

-- or --

$rows = $sth->fetchAll();
foreach($rows as $row) {
    ...
}
于 2013-02-12T18:20:32.990 回答
0

$result = $sth->fetchAll();

$result将是一个包含所有结果的数组。

然后使用 aforeach循环。

前锋

于 2013-02-12T18:26:36.427 回答