フレームワークやCMS、ブログツールを使ってシステム構築することがほとんどになってしまい、アレだけ大好きだったPEARを現在ではほとんど使っていない。今日、ふとPEARのマニュアルを見ていて便利なのを見つけた。
データベース接続のためのmdb2はSQLを書かなくてもSQLを実行できるのだ。もちろんDB_DataObjectなんかでも同様のことはできていたわけだが、これはもっとお手軽簡単だと思う。しかもプリペアードステートメントを使用するので値のエスケープも必要ない。こんな具合に記述するらしい。
事前に$mdb2というデータベースオブジェクトを作成しておいて・・・。
$tableName=’user';
$tableFields=array(‘id’,’name’,’password’);
$fieldTypes=array(‘integer’,’text’,’text’);
$mdb2->loadModule(‘Extended’);
$sth=$mdb2->extended->autoPrepare($tableName,$tableFields,$MDB2_AUTOQUERY_INSERT,null,$fieldTypes);
ここまでで準備完了。次にデータを用意して上記の$sthに放り込めばいい。
$values=array(1,’kaorun’,’himitsu’);
$result=& $sth->execute($values);
おのおのエラー処理は別途必要だが、SQLは書かなくていい。何より後々フィールド数が変わったりした場合でも変更が簡単だ。データ登録で複数行ついかしたかったらexecuteMultiple()を実行すればいい。
データを一行だけ登録するならautoExecute()を実行すればいい。こちらも同様に「SQLいらず」だ。
なにより、複雑な設定ファイルを記述しなくても「簡単な配列でテーブルを定義するだけでいい」ってのがサイコー。しかし・・・もっと昔に気づいていればなぁ。