データベース アクセスをシングルトンでラップすることを検討することをお勧めします。利点:
- 使用できる接続は 1 つだけです。
- 必要な場合にのみ接続を開きます (すべてのページで任意に接続するのではなく)。
独自のシングルトンを作成するか、フレームワークからシングルトンを取得できますが、作業内容によってはやり過ぎかもしれません。基本は次のようなものになります。
class DatabaseAccess {
private static $instance;
private $connection;
//declare the constructor private so we can only use it in this class
private function __construct( $host, $user, $pass, $db ) {
$this->connection = mysql_connect( $host, $user, $pass );
mysql_select_db( $db, $this->connection );
}
//provide access to a single instance
public static function instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new DatabaseAccess('host', 'user', 'pass', 'db');
}
return self::$instance;
}
//functions to execute/query the db
public function query( $query ) {
return mysql_query( $query, $this->connection );
}
}
このルートをたどるとしたら、mysql_* 関数をラップするのではなく、mysqli のインスタンスへのアクセスを制御し、それを直接使用することでおそらくこれを行うでしょう。シングルトン パターンの詳細については、ウィキペディアを参照してください。
アプリケーションは、次のようにクラスで動作します。
$dba = DatabaseAccess::instance();
$result = $dba->query('select * from pages');
mysql_fetch_assoc($result);
//blah blah blah
それが役立つことを願っています!