从postgre PDO返回多行

时间:2013-02-12 18:18:47

标签: php pdo

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

2 个答案:

答案 0 :(得分:1)

将结果集视为堆栈,并且每个fetch()调用都会弹出结果行。您已经在while循环的OUTSIDE中调用了fetch,然后显然抛弃了$ result。这意味着一行结果数据消失了。至于将它们放入一个物体/阵列中,这取决于你。可以这么简单:

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

在循环中。


或者

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

-- or --

$rows = $sth->fetchAll();
foreach($rows as $row) {
    ...
}

答案 1 :(得分:0)

$result = $sth->fetchAll();

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

然后使用foreach循环播放。

foreach