场景:有很多网站的表里面只会存在一条记录,如网站配置表,服务器发送邮件配置表等
设计优点:添加扩展属性时不需要修过数据库表结构,只需要添加一条属性记录即可,保存时做sqlupdate操作
- CREATE TABLE `siteconf` (
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
- `code` varchar(40) NOT NULL DEFAULT '' COMMENT '表单元素名称',
- `value` varchar(200) DEFAULT NULL COMMENT '表单值',
- PRIMARY KEY (`id`),
- UNIQUE KEY `form_name` (`code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
记录示例
记录
- public function getSiteInfo(){
- $sql = "select * from siteconf ;";
- $list = $this->db->findAll($sql);
- $result = array();
- foreach($list as $info){
- $result[$info['code']] = $info['value'];
- }
- return $result;
- }
- //保存或修过信息
- public function updateSiteInfo($formData)
- {
- foreach ($formData as $name => $val) {
- $sql = "update siteconf set value='$val' where code='{$name}'";
- $this->db->execute($sql);
- }
- }
注意事项:code值和页面表单name一致
- <input type="text" value="<?php echo $info['name']; ?>" name="name">
撒飞洒的