博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP 数据库表结构处理类(简单实用)
阅读量:6225 次
发布时间:2019-06-21

本文共 2728 字,大约阅读时间需要 9 分钟。

execute($sql); $this->checkTable($table); } /*  * 检测表是否存在,也可以获取表中所有字段的信息  * table 要查询的表名  * return 表里所有字段的信息  */ function checkTable($table){ $sql="desc `$table`"; $info=M()->execute($sql); return $info; } /*  * 检测字段是否存在,也可以获取字段信息(只能是一个字段)  * table 表名  * field 字段名  */ function checkField($table,$field){ $sql='desc `$table` $field'; $info=M()->execute($sql); return $info; } /*  * 添加字段  * table 表名  * info  字段信息数组 array  * return 字段信息 array  */ function addField($table,$info){ $sql="alter table `$table` add "; $sql.=$this->filterFieldInfo(); M()->execute($sql); $this->checkField($table,$info['name']); } /*  * 修改字段  * 不能修改字段名称,只能修改  */ function editField($table,$info){ $sql="alter table `$table` modify "; $sql.=$this->filterFieldInfo($info); M()->execute($sql); $this->checkField($table,$info['name']); } /*  * 字段信息数组处理,供添加更新字段时候使用  * info[name]   字段名称  * info[type]   字段类型  * info[length]  字段长度  * info[isNull]  是否为空  * info['default']   字段默认值  * info['comment']   字段备注  */ private function filterFieldInfo($info){ if(!is_array($info)) return $newInfo=array(); $newInfo['name']=$info['name']; $newInfo['type']=$info['type']; switch($info['type']){ case 'varchar': case 'char': $newInfo['length']=empty($info['length'])?100:$info['length']; $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL'; $newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default']; $newInfo['comment']=empty($info['comment'])?'':'COMMENT '.$info['comment']; case 'int': $newInfo['length']=empty($info['length'])?7:$info['length']; $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL'; $newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default']; $newInfo['comment']=empty($info['comment'])?'':'COMMENT '.$info['comment']; case 'text': $newInfo['length']=''; $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL'; $newInfo['default']=''; $newInfo['comment']=empty($info['comment'])?'':'COMMENT '.$info['comment']; } $sql=$newInfo['name'].' '.$newInfo['type']; $sql.=(!empty($newInfo['length']))?($newInfo['length'])." ":' '; $sql.=$newInfo['isNull'].''; $sql.=$newInfo['default']; $sql.=$newInfo['comment']; return $sql; } /*  * 删除字段  * 如果返回了字段信息则说明删除失败,返回false,则为删除成功  */ function dropField($table,$field){ $sql="alter table `$table` drop column $field"; M()->execute($sql); $this->checkField($table,$filed); } /*  * 获取指定表中指定字段的信息(多字段)  */ function getFieldInfo($table,$field){ $info=array(); if(is_string($field)){ $this->checkField($table,$field); }else{ foreach($field as $v){ $info[$v]=$this->checkField($table,$v); } } return $info; }}

    好久没有写博客了,最近忙的要死,搞微信平台,偶尔遇到需要模型管理,前台表单直接修改表结构的,就自己简单写了一下,也不是很难,给大家一个思路,看不懂了可以联系我


footer.jpg

转载地址:http://ssuna.baihongyu.com/

你可能感兴趣的文章
LNMP之源码自定义安装
查看>>
beego+mysql的美剧网站源码
查看>>
Android的Fragment
查看>>
javascript没有加载完就不可以响应ajax请求了么
查看>>
我的友情链接
查看>>
hashmap的初始容量为什么设置为16?
查看>>
10、二进制中1的个数
查看>>
好程序员带你认识“jQuery”
查看>>
不断重复
查看>>
jquery-event01
查看>>
9,mysql触发器
查看>>
在交换机上拒绝非法的DHCP服务器分配IP地址
查看>>
解决ezSQL编码问题
查看>>
[转]如何用Jmeter做压力测试
查看>>
跨站点如何快速部署DC
查看>>
C#修改目录和文件权限
查看>>
EL表达式
查看>>
深入浅出Hadoop Mahout数据挖掘实战(算法分析、项目实战、中文分词技术)
查看>>
UbuntuServer 12.04安装记录(二):svn服务的创建
查看>>
谈谈最近深圳找工作经历
查看>>