- ベストアンサー
プレインPHPでSQL検索結果取得方法
- プレインPHPでSQLを使って検索結果を取得する方法について求めています。
- フレームワークを使わずにSQLを実行しようとしているが、期待通りの結果が得られないとのこと。
- 検索結果を連想配列で取得し、行ごとに処理を行う方法を教えてほしい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> やっぱりこのやり方ですかね。 > いちいちwhileで回してやらないとならないんですね。 どんなフレームワークを利用されてたのかは分かりませんが、結局こんな感じの事をやった結果を返してくれてるだけだと思いますよ。 関数化してしまえばSQL書くたびに「いちいち」おなじ処理を書く必要もないので、特に気にすることも無いとは思いますが・・・ 私の場合は自分が中心になって開発していく場合は、PEARのMDB2をベースに汎用クラスを作ってあるのでそれをいつも使っています。 $db = new DBCLASS(); $array = $db->select($sql, $param); みたいな感じです。 SELECT以外にもDB周りの処理を諸々作ってますが・・・ 一回自分で作っておけば何かと便利だと思いますよ。
その他の回答 (4)
- BellBell
- ベストアンサー率54% (327/598)
query→queryAll とすればいいだけですね。 ライブラリのリファレンスに書かれている事です。
お礼
ありがとうございます。 勉強してみます。
- 1minn
- ベストアンサー率57% (52/90)
すみません いろいろ間違えました function aaa($result) { $arr = array(); while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)){ $arr[] = $rs; } return $arr; }
お礼
ありがとうございます。 やっぱりこのやり方ですかね。 いちいちwhileで回してやらないとならないんですね。 勉強不足で....
- 1minn
- ベストアンサー率57% (52/90)
そこまで出来てるんであれば・・・ $resultをパラメータとして投げて連想配列にして返す汎用的な関数をひとつ作ってやればよいのでは? function aaa() { $arr = array(); while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)){ $arr[] = $rs; } return $rs; } みたいな感じで。
- bm_hiro
- ベストアンサー率51% (200/388)
PEAR DB の使い方は すっかり忘れちゃいましたが、PHPネイティブのMySQL用の mysql_fetch_assoc みたいの ないもんでしたっけ? これでも while とかで ぶん回すのは一緒ですけど。
補足
mysql_fetch_assocは使えると思うのですが、mysql以外も想定しているのでmysqlに限定しない方法を考えています。
お礼
PEARのMDB2ですね。 勉強してみます。 ありがとうございます。