PHP & MySQL


現在PHPとMySQLを使用し掲示板を作成しています。

MySQLに接続し、データを抜く際、getData.class.php となるものを作成し、クラス内で接続、SQLの実行等を行い値をreturnしています。

しかし機能を増やすにつれ、getData.class.phpに書かれるfunctionの量が増え、実感速度も遅くなってきました。実際に仕事などでPHPを扱っている技術者の方はどのようにしてデータベース関連のクラスを作っているのでしょうか?構造や効率的な作り方を教えてください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/04/08 10:15:32
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:TNIOP No.1

回答回数2344ベストアンサー獲得回数58

ポイント1pt

http://www.cbook24.com/bm_detail.asp?sku=486167140X

こちらで解決出来ると思います。

PHPスクリプトを実行するZendエンジンの改良により実行速度も改善

本格的な大規模サイトを目指すPHP技術者が効率よく問題解決し、ステップアップできるように本書を執筆しました。

id:esecua

TNIOPさんって、PHPって何かわかりますか?

2007/04/02 22:44:26
id:toteri No.2

回答回数52ベストアンサー獲得回数3

ポイント69pt

esecuaさんがクラスの中でどういう実装をしているのか分からないのですが、

実効速度を考えるのでしたら

当たり前かも知れませんがクラス化せずにsql文の直書きが早いと思います。

ただ、それをするとソースがぐちゃぐちゃになりますのであまりお勧めできません。

掲示板の機能だけでしたら同じテーブルからデータをとってくるSQLは1つにまとめて関数にし(クラス化せずに)、引数で

  • SELECTするデータ
  • WHERE句
  • それ以降のORDER BY句など

を渡せばコードはスッキリすると思います。

もっと大規模であれば

phpのライブラリであるPEARのPEAR::MDB2を使ったりします

http://pear.php.net/package/MDB2

PV数やデータ量にもよりますが、明らかに他の掲示板サイトより遅いのであれば、PHPのコードやSQL文に問題がある可能性が高いです。

id:esecua

なるほど。参考になります。

一応次の回答に参考になるために若干詳細を。

DB接続にはADOBDを使用しています。基本的にクラス内で接続し、各データの取得用にfunctionを作っている形になります。

2007/04/03 03:13:49
  • id:kurukuru-neko
    基幹となるクラスを大きくすればそれは
    大きくなるのが当然の結果。

    機能が増える毎に基幹クラスを拡張すると
    個別のプログラム毎には必要のない機能が増える。

    機能を追加する場合派生可能なものは派生で対応する。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません