0

このPHPpostgreSQLPDOステートメントでは結果が返されません。私はいくつかの行を見ることを期待していました。私は何を間違えましたか?それらを取得してオブジェクトまたは配列に配置するにはどうすればよいですか?

$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ループの外側で1回フェッチを呼び出した後、$resultを破棄したようです。これは、結果データの1行がなくなったことを意味します。それらをオブジェクト/配列に入れることに関しては、それはあなた次第です。次のように単純にすることができます:

$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すべての結果を含む配列になります。

次に、を使用しforeachてループします。

foreach

于 2013-02-12T18:26:36.427 に答える