我希望能够创建扩展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类可以有几种方法,例如query
,fetchAssoc
,numRows
,checkUniqueValue
,transactionStart
,transactionCommit
,transactionRollback
等。这些功能也可以设置为由DataAccess类实现的接口(interface)。这样,您可以轻松地将DataAccess类扩展为多个数据库管理系统。
上面几乎描述了我的DataAccess模型。
关于php - 扩展MySQLi类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1820421/