PDO -> 事後処理

Posted by muchag | PHP | 2010-07-08 (木) 23:31:16

DBから情報を抽出しようとしたら

  1. $row = $sth->fetch();

こんな感じの文になるらしいんだけど
これだと1行しか出てこない。

だから実際には

  1. while ( $row = $sth->fetch() ) {
  2.     // ここに処理
  3. }

とか

  1. foreach ($sth->fetch() as $row) {
  2.     // ここに処理
  3. }

という風にして処理をするらしいんだが
データ抽出の部分を外部ファイルで済まそうとしている今回は
これでは無理。

そこで

  1. $rows = $sth->fetchAll();

を使うと、なんていうのかな専門用語は知らないけど
DB内の各レコードを$rows[0]から順に代入した状態になっている。
今回はこれを採用!
(あ~そうかOpenPNEを改造したときのは、こういうことだったのね)

それと、上のままだとレコードの抽出結果が
普通の配列と連想配列で二重に出てきちゃうので

  1. $rows = $sth->fetchAll(PDO::FETCH_ASSOC);

こうしてやると、連想配列だけで取り出せる。

大した問題ではないのかもしれないけど
テストで出力したときに見やすいし、きっとメモリの問題もあるんだろうから
一応これでいくことにする。

PHP | 2010-07-08 (木) 23:31:16 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment