[Maple-user: 329] Re: データベース接続の簡単なサンプル

Back to archive index

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>




Maple-user メーリングリストの案内
Back to archive index