您可能需要考虑围绕数据库访问包装一个单例。好处:
- 您只能使用一个连接。
- 只有在需要时才打开连接(而不是在每个页面上任意连接)。
您可以滚动自己的单例或从框架中获取一个,这可能会根据您正在处理的内容而过大。基础是这样的:
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 );
}
}
如果我要走这条路,我可能会通过控制对 mysqli 实例的访问并直接使用它而不是包装 mysql_* 函数来做到这一点。您可以在 wikipedia 上找到有关单例模式的更多信息。
然后,您的应用程序将像这样使用该类:
$dba = DatabaseAccess::instance();
$result = $dba->query('select * from pages');
mysql_fetch_assoc($result);
//blah blah blah
希望有帮助!