Takeshi Kawamoto
yuki****@ariel*****
2006年 8月 4日 (金) 16:32:02 JST
河本です。 > PHPはPHP4の環境もあるので、) DIなしでもいいです、 > 「MapleでPEARをそのまま使う、PEAR_DB」の簡単なサンプルないでしょうか? MapleでDIに入れて使わない場合、Actionクラス等でそのままPEAR_DBを利用すれ ば良いので、通常のPEAR_DBのマニュアル等が使えます。 Google等で「PEAR DB」で検索すれば色々なサンプルが出てくると思います。 http://pear.php.net/manual/ja/package.database.db.php また、DI2を使っている場合、method injectionができたと思うので、DIに設定 できると思います。 下記にMapleの場合での簡単な例を書いておきますが、テストしてないのでその ままだとエラーが出るかもしれませんが、ご了承ください。 例) 対象Actionのmaple.ini [SimpleView] success = "index.html" 対象Actionクラス webapp/modules/index/Index.class.php <?php class Index { var $names; function execute() { $this->names = array(); // 接続 $db = DB::connect('mysql://ユーザー名@パスワード@DBのホスト/データベース 名'); if (PEAR::isError($db)) { die($db->getMessage();) } // 検索 $res =& $db->query('SELECT name FROM mytable'); // 各行のデータの取得を、 // 最後の行に到達するまで続けます while ($res->fetchInto($row)) { // DB のデフォルトのフェッチモードが DB_FETCHMODE_ORDERED であると仮定します $this->names[] = $row[0]; } // 切断 $db->disconnect(); return 'success'; } } ?> 対象ビュー(Simple) webapp/templates/index.html <html> <head> <title>DB Test</title> </head> <body> <ul> <?php foreach($action->names as $name) { ?> <li><?=h($name);?></li> <? } ?> </ul> </body> </html>