初心者の質問ですみません。
フレームワークをずうっと使って来たのですが、フレームワークを使わずに検索をしようとしたところ、全く思うようにいかず困っています。
SELECT * FROM table
のような単純なSQL文なのですが、PEARを使って
$sql = "SELECT * FROM table";
$result = $conn->query($sql);
としvar_dumpしてみると、期待していたSQLのデータが表示されません。
フレームワークを使っていると、この時点でどのフレームワークでもきれいに連想配列で表示できていました。
その辺が、フレームワークのフレームワークたるゆえんなのでしょうか.....
ただ、結果は取得できているようで、
$count = $result->numRows();
としてやると正しい件数が表示されますし、カラム名を指定して
while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)){
echo $rs['column_name'];
}
としてやるとカラムの値を表示します。
やりたいこととしては、検索結果を連想配列で取得し、foreachで行ごとに処理を行うことで、whileで$rs['column_name']を取得できることから、最悪でも力技で行ごとにカラム情報を全て取得して配列を作ってやることはできるとは思うのですが、もっと良い方法が無いはずがないと思います。
教えていただけますでしょうか。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
> やっぱりこのやり方ですかね。
> いちいちwhileで回してやらないとならないんですね。
どんなフレームワークを利用されてたのかは分かりませんが、結局こんな感じの事をやった結果を返してくれてるだけだと思いますよ。
関数化してしまえばSQL書くたびに「いちいち」おなじ処理を書く必要もないので、特に気にすることも無いとは思いますが・・・
私の場合は自分が中心になって開発していく場合は、PEARのMDB2をベースに汎用クラスを作ってあるのでそれをいつも使っています。
$db = new DBCLASS();
$array = $db->select($sql, $param);
みたいな感じです。
SELECT以外にもDB周りの処理を諸々作ってますが・・・
一回自分で作っておけば何かと便利だと思いますよ。
No.3
- 回答日時:
すみません
いろいろ間違えました
function aaa($result) {
$arr = array();
while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)){
$arr[] = $rs;
}
return $arr;
}
ありがとうございます。
やっぱりこのやり方ですかね。
いちいちwhileで回してやらないとならないんですね。
勉強不足で....
No.2
- 回答日時:
そこまで出来てるんであれば・・・
$resultをパラメータとして投げて連想配列にして返す汎用的な関数をひとつ作ってやればよいのでは?
function aaa() {
$arr = array();
while($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)){
$arr[] = $rs;
}
return $rs;
}
みたいな感じで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でDBの特定列をUpdate
-
cron
-
ResultSetインターフェイスでの...
-
一度検索されたものに対するソ...
-
INSERT,DELETEを同時に
-
filter_input で取得した型は何...
-
PHPでMySQLのテーブルからcount...
-
MYSQL UPDATE
-
MySQLにmd5が登録できません。
-
変数にNULLを代入したい
-
SQL文が実行できません
-
ユーザーアカウンントの重複を...
-
mysqlにあるemailへそれぞ...
-
sqlの検索結果件数を知りたい
-
読み込んだファイル中の文字列...
-
MySQL接続のPHPの記述に関しまして
-
select文
-
DB::connectでパスワードに「@...
-
PHPからMySQL・異なるDBにコピー
-
PHPでMySQLのデータを2次元配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
insert1つの処理でもトランザ...
-
Pro*Cの構文エラー
-
JAVA SQLServerException 列名 ...
-
<VB.NET>INSERT文でDBにデータ...
-
VB.NET エラーになる箇...
-
MySQLのINSERT時にたまに重複に...
-
一度検索されたものに対するソ...
-
ResultSetインターフェイスでの...
-
チェックボックスからの複数検...
-
PHP初心者です。syntax error, ...
-
PHP+SQLite でSELECT文のWHERE...
-
エクセルVBAのデータベース接続...
-
PHPよりMySQLの操作のコードの...
-
phpで複数の検索語を検索対象に...
-
php MySQL で、更新ボタンを押...
-
VBA ACCESS SQL...
-
C#でDBの特定列をUpdate
-
PHP&MySQLでの文字列+数列の一...
-
データベースに存在するデータ...
-
ASPでSQL文を使う場合に。
おすすめ情報