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

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

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

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

  21.     //如果有$value为空,就返回$key的值
  22.     if($value == null){
  23.         return $cd->where( $where )->getField('value');
  24.     }
  25.     //如果$value为DEL,就删除这条记录的值
  26.     else if($value == "DEL")
  27.     {
  28.         return $cd->where( $where )->delete();
  29.     }
  30.     //如果$value有正常值,其它操作
  31.     else{

  32.         //如果存在$key,更新
  33.         if($cd->where($where)->find()){
  34.             $cd->value = $value;
  35.             return $cd->where($where)->save();
  36.         }
  37.         //如果不存在$key,写入一条新数据
  38.         else{
  39.             $cd->key = $key;
  40.             $cd->value = $value;
  41.             return $cd->add();
  42.         }
  43.     }
  44. }