13

fetchAllからデータを選択的に印刷するのに問題があります。

通常のmysqlでは、次のようにします。

$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)){
   $id = $row['id'];
   $n = $row['n'];
   $k = $row['k'];
}

PDOで問題が発生しています。パラメータをバインドしてから、同じ方法でループする目的で、フェッチしたデータを上記のように$rsに保存しています。

$sth->execute();
$rs = $query->fetchAll();

さて、問題の部分が来ます。上記のwhileループに一致するものを取得するには、PDOごとに何をしますか?!print_r()またはdump_varを使用できることはわかっていますが、それは私が望んでいることではありません。必要に応じて$id、$ n、$ kを個別に取得するなど、通常のmysqlで実行できたものを実行する必要があります。出来ますか?

前もって感謝します..

4

1 に答える 1

32

そのはず

while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
  $id = $row['id'];
  $n = $row['n'];
  $k = $row['k'];
}

あなたが主張するならfetchAll

$results = $query->fetchAll(PDO::FETCH_ASSOC);
foreach($results as $row) {
   $id = $row['id'];
   $n = $row['n'];
   $k = $row['k'];
}

PDO::FETCH_ASSOC列名のみをフェッチし、数値インデックスを省略します。

于 2009-10-05T12:53:51.443 に答える