我希望能够创建扩展MySQLi类以执行其所有SQL查询的类。

$mysql = new mysqli('localhost', 'root', 'password', 'database') or die('error connecting to the database');

我不知道如何在不全局化$ mysql对象以在其他方法或类中使用的情况下执行此操作。
class Blog {

public function comment() {
    global $mysql;

    //rest here
}

}

任何帮助,将不胜感激。

谢谢。

最佳答案

我的建议是创建一个Singleton DataAccess类,在全局配置文件中实例化该类,然后在您的Blog类(如$query = DataAccess::query("SELECT * FROM blog WHERE id = ".$id))中对其进行调用。

查看Singleton模式,这是一个非常容易理解的设计模式。非常适合这种情况。

您的DataAccess类可以有几种方法,例如queryfetchAssocnumRowscheckUniqueValuetransactionStarttransactionCommittransactionRollback等。这些功能也可以设置为由DataAccess类实现的接口(interface)。这样,您可以轻松地将DataAccess类扩展为多个数据库管理系统。

上面几乎描述了我的DataAccess模型。

关于php - 扩展MySQLi类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1820421/

10-11 16:58