- ベストアンサー
データベースのユーザ定義関数について
- データベースの処理においてユーザ定義関数を利用すべきかについて疑問を感じています。
- 参考書籍やWeb情報では、データベースの変更に備えてユーザ定義関数を使用することが推奨されています。
- ただし、すべてのデータベース処理をユーザ定義関数で置き換える必要があるのか悩んでいます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私は、PEARを使っています http://pear.php.net/manual/ja/ を使っています
その他の回答 (2)
- php504
- ベストアンサー率42% (926/2160)
そういうことでしたらNo1の方に同意です
お礼
ご教授有難うございました。 今回は、あまりユーザ定義関数に拘るのを止めて、標準関数内で処理しようと思っています。 後々、PEARを勉強しつつ使用していきたいと思います。 有難うございました。
- php504
- ベストアンサー率42% (926/2160)
avg(),count(),max(),min(),sum() などのANSI標準で全てのSQLサーバで使えるものは使って構わないと思います。 文字列操作関数や日付関数などはPHPの標準関数で使えるので互換性を考えるならPHPで処理したらいいでしょう。
補足
早々のご回答有難うございます。 Cまたは C++で記述するデータベース内でのユーザ定義関数ですね。 実は、PHP内で定義するユーザ定義関数で悩んでおりまして。。。 例えば、以下の様な感じです。 例)データベース接続の場合のユーザ定義関数 ------------------------------------------------- function db_connect($host="xxxxx",$user="xxx",$pass="xxxxx"){ global $con; if(!$con=@mysql_connect($host,$user,$pass)){ return FALSE; } //例えば、MySQL->PostgreSQLに変更があった場合 //上記コードを以下の様に書き換える //$db="xxx"; //$port="xxxx"; //if(!$con=@pg_connect$host,$port,$db,$user, $pass)){ // return FALSE; //} } ------------------------------------------------- 引数もデータベースが変更されれば、当然修正を行わなければならず、SQLを実行する場合の、「mysql_query」や「pg_query」、SQLの結果を返す、「mysql_fetch_array」、「pg_fetch_array」・・・etc。 別途ユーザ定義関数でこれら処理を全て記述するべきなのかな?と悩んでおります。 質問のタイトルが適当ではありませんでした。 申し訳ございませんでした。
お礼
ご回答有難うございます。 やはりPEARを使用するのが一般的なのでしょうか? 少しだけ、これら情報を見てみたのですが、少々複雑な印象を受けましたので敬遠しておりました。 もっとPEARについて調べてみようと思います。 有難うございました。