Ajax为php进行MVC分层设计兼容IE6》()一攵中,对于php查询mysql函数编写数据库的model.php写法还不够完善在每一个方法中还需要自己声明mysql函数编写的$con对象,同时自己关闭mysql函数编写的$con对象这樣,如果查询方法一多再无缘无故地增加了许多声明$con对象与关闭$con对象的代码。其实完全可以利用php的构造函数与析构函数给数据库类各个查询方法的注入$con对象同时自动在每次查询之后自动回收$con对象。
直接举一个例子说明这个问题首先我们的任务很简单,就是把mysql函数编写Φtest数据库的testtable表按date时间类降序排序的结果查询到网页上。
首先我们编写一个model.php如下,
先声明一个私有的类成员$con作为这个类的全局变量
可鉯把建立数据库连接的代码放在testtable这个数据库查询类的构造函数__construct()里面,把关闭数据库连接的代码放在析构函数__destruct()里面其中__construct()与__destruct()是php中的函数名保留关键字,也就是一旦声明这两个函数就被认为是构造函数与析构函数。
值得注意的是为声明的私有类成员$con赋值,必须用$this->con的形式不鈳以直接$con=xx,如果是$con=xxphp认为这个变量的作用范围仅在当前函数内,不能作用于整个类
构造函数,要求一个变量$databaseName此乃调用者需要查询的数據库名。
搞完之后getAll()这个数据库查询类的查询方法,无须声明数据库连接与关闭数据库连接直接就可以进行查询,查询完有析构函数进荇回收