将网站配置或动态配置写入数据库。以键值对的形式存取。
<?php
/**
* 站内配置
* @author 李俊
*
*/
class config {
public $confModel;
function __construct() {
$this->confModel=D('config');
}
/**
* 设定键名为key键值为value的配置
* Enter description here ...
* @param $key
* @param $value
*/
function setConf($key,$value) {
$data['key']=$key;
$data['value']=$value;
$this->confModel->add($data);
}
/**
* 更新键名为key的配置
* Enter description here ...
* @param $key
* @param $value
*/
function updateConf($key,$value) {
$data['value']=$value;
$this->confModel->where(array('key'=>$key))->save($data);
}
/**
* 检测键名为key的配置是否存在
* Enter description here ...
* @param $key
*/
function definedConf($key) {
$rst=$this->confModel->where(array('key'=>$key))->find();
if ($rst==null) {
return false;
}else {
return true;
}
}
/**
* 获取键名为key的键值
* Enter description here ...
* @param unknown_type $key
*/
function getConf($key) {
$rst=$this->confModel->where(array('key'=>$key))->find();
return $rst['value'];
}
/**
* 获取配置键名为key的键值
* @param <b style='color:red'>string $key 键名</b>
* @return any||null
*/
static function get($key) {
$conf=new config();
if (($rst=$conf->getConf($key))==null) {
return null;
}else {
return json_decode($rst);
}
}
/**
* 设定键名为key键值为value的配置
* @param string <b style='color:red'>$key 键名</b>
* @param any <b style='color:red'>$value 键值</b>
*/
static function set($key,$value) {
$value=json_encode($value);
$conf=new config();
if ($conf->definedConf($key)) {
$conf->updateConf($key, $value);
}else {
$conf->setConf($key, $value);
};
}
}
数据表
-- phpMyAdmin SQL Dump
-- version 3.5.2.2
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2013 年 04 月 18 日 11:45
-- 服务器版本: 5.5.24-log
-- PHP 版本: 5.3.13
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- 数据库: `alumni`
--
-- --------------------------------------------------------
--
-- 表的结构 `config`
--
CREATE TABLE IF NOT EXISTS `config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`key` varchar(255) NOT NULL DEFAULT '' COMMENT '键',
`value` text COMMENT '值',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='站内配置' AUTO_INCREMENT=2 ;
--
-- 转存表中的数据 `config`
--
INSERT INTO `config` (`id`, `key`, `value`) VALUES
(1, 'test', '"testvalue"');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;