一个可以把配置参数保存到数据库的函数

jerry thinkphp 2015年11月19日 收藏
不知道TP有没有这个功能,自己做了一个可以把配置参数保存到数据库,Thinkphp 3.2放到
/项目目录/Common/Common/function.php里就可以使用了。
function CD($key, $value = null){

    /**
    *    公共方法,可以把配置参数保存到数据库
    *
    *    用法:
    *    CD('配置项');            //读取配置项
    *    CD('配置项', '数据')    //写入配置项
    *    CD('配置项', 'DEL')    //从数据库中移除该配置项
    *
    *
    *在数据库中建立config表,表前缀改成自己的
    * CREATE TABLE IF NOT EXISTS `think_config` (
    *   `id` int(11) NOT NULL AUTO_INCREMENT,
    *   `key` varchar(255) CHARACTER SET utf8 NOT NULL,
    *   `value` varchar(255) CHARACTER SET utf8 NOT NULL,
    *   PRIMARY KEY (`id`)
    * ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    */

    $cd = M('Config');
    $where = array( 'key' => $key);

    //如果有$value为空,就返回$key的值
    if($value == null){
        return $cd->where( $where )->getField('value');
    }
    //如果$value为DEL,就删除这条记录的值
    else if($value == "DEL")
    {
        return $cd->where( $where )->delete();
    }
    //如果$value有正常值,其它操作
    else{

        //如果存在$key,更新
        if($cd->where($where)->find()){
            $cd->value = $value;
            return $cd->where($where)->save();
        }
        //如果不存在$key,写入一条新数据
        else{
            $cd->key = $key;
            $cd->value = $value;
            return $cd->add();
        }
    }
}