应用场景是这样的:有一个类,里面大约26、7个函数,其中约一半的函数是涉及数据库增删改查操作的,在这些函数中又有8个是频繁查询和更新数据库信息的(来自前台的Ajax定时请求);其余的函数不涉及数据库操作,但有Rest http数据加载。
有两种选择:
1.在每个函数中连接和断开数据库,
2.在构造函数中连接数据库,在析构中断开
第一种照顾不涉及数据库操作的函数,但是会造成频繁的链接和断开,尤其是定时请求的函数;第二种方法不会频繁连接和断开,但是是持续连接,而且这个类贯穿业务流程的整个生命周期,可能造成数据库连接上限到顶。
大家给点意见吧
在脚本开始定义一个数据库对象或变量,在函数里通过global调用
在脚本结束时断掉相对来说第二种方法较好
class youclassname {
......
static $db;
function __construct(){} function getDB(){
if (!self::$db) self::$db = new db();
return self::$db;
} function youdbmethod($sql){
$this->getDB()->query($sql);
} function __destruct(){
if (self::$db) self::$db->close();
}}