<?php
/*
*mysql表结构处理类
*创建数据表,增加,编辑,删除表中字段
*
*/
classMysqlManage{
/*
*创建数据库,并且主键是aid
*table要查询的表名
*/
functioncreateTable($table){
$sql="CREATETABLEIFNOTEXISTS`$table`(`aid`INTNOTNULLprimarykey)ENGINE=InnoDB;";
M()->execute($sql);
$this->checkTable($table);
}
/*
*检测表是否存在,也可以获取表中所有字段的信息
*table要查询的表名
*return表里所有字段的信息
*/
functioncheckTable($table){
$sql="desc`$table`";
$info=M()->execute($sql);
return$info;
}
/*
*检测字段是否存在,也可以获取字段信息(只能是一个字段)
*table表名
*field字段名
*/
functioncheckField($table,$field){
$sql='desc`$table`$field';
$info=M()->execute($sql);
return$info;
}
/*
*添加字段
*table表名
*info字段信息数组array
*return字段信息array
*/
functionaddField($table,$info){
$sql="altertable`$table`add";
$sql.=$this->filterFieldInfo();
M()->execute($sql);
$this->checkField($table,$info['name']);
}
/*
*修改字段
*不能修改字段名称,只能修改
*/
functioneditField($table,$info){
$sql="altertable`$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']字段备注
*/
privatefunctionfilterFieldInfo($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':'NOTNULL';
$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':'NOTNULL';
$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':'NOTNULL';
$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,则为删除成功
*/
functiondropField($table,$field){
$sql="altertable`$table`dropcolumn$field";
M()->execute($sql);
$this->checkField($table,$filed);
}
/*
*获取指定表中指定字段的信息(多字段)
*/
functiongetFieldInfo($table,$field){
$info=array();
if(is_string($field)){
$this->checkField($table,$field);
}else{
foreach($fieldas$v){
$info[$v]=$this->checkField($table,$v);
}
}
return$info;
}
}

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

最新内容请见作者的GitHub页:http://qaseven.github.io/

ThinkPHP 数据库表结构处理类(简单实用)相关推荐

  1. thinkphp mysql desc table_数据库表结构_ThinkPHP 数据库表结构处理类(简单实用)-云栖社区-阿里云...

    /* *mysql表结构处理类 *创建数据表,增加,编辑,删除表中字段 * */ classMysqlManage{ /* *创建数据库,并且主键是aid *table要查询的表名 */ functi ...

  2. python 数据库表结构转为类_Python数据科学实践 | 数据库1

    大家好,基于Python的数据科学实践课程又到来了,大家尽情学习吧.本期内容主要由智亿同学与政委联合推出. 数据库永远是数据管理上最值得使用的工具.而把所收集的大量数据放入数据库之后再处理是数据科学实 ...

  3. python 数据库表结构转为类_顺序表数据结构在python中的应用

    数据结构不仅仅指的数据值在逻辑上的结构,更有在存储空间上的位置结构,顺序表,故名思意是有一定顺序的数据结构.顺序表最基本模型如图: 对于基本布局顺序表而言,它存储相同单元大小并且在内存地址上连续的数据 ...

  4. python 数据库表结构转为类_Python sql server和postgresql的表结构转换

    通过Python修改Postgresql的表格:添加Column当繁华落尽时间破碎,我在落败的残花前看见了一地忧伤,所有海誓山盟终不及命运的一夕,转变繁华尽头皆是残缺. 我想通过Python修改Pos ...

  5. zabbix数据库表结构简单解析

    zabbix数据库表结构-持续更新 时间 2014-06-11 21:59:08  furion's blog 原文  http://www.furion.info/623.html 主题 MySQL ...

  6. 开源数据库表结构文档生成器

    大家好,我是TJ 一个励志推荐10000款开源项目与工具的程序员 TJ君前几天和一个在银行科技部上班的同学聚会,同学跟TJ君吐槽,一些小银行的科技表面看上去专业,实际各种马虎不负责. 打个比方,有一次 ...

  7. Activiti数据库表结构(表详细版)

    http://blog.csdn.net/hj7jay/article/details/51302829 1  Activiti数据库表结构 1.1      数据库表名说明 Activiti工作流总 ...

  8. hibernate 读取mysql表结构_为什么要用hibernate 与基于数据库表结构的项目开发

    最近开始学习hibernate,其实并不知道要学习什么,有什么用.后来问了一下同事,他就说快捷方便简单,很多事情不用自己做他会帮你做好,但是我觉得不应该是这样的, 于是我就去搜了一下,就搜到了一篇帖子 ...

  9. zabbix数据库表结构

    zabbix数据库表结构的重要性 想理解zabbix的前端代码.做深入的二次开发,甚至的调优,那就不能不了解数据库的表结构了. 我们这里采用的zabbix1.8.mysql,所以简单的说下我们mysq ...

最新文章

  1. Android提前加载unity程序,Unity项目嵌入Android App实现过程
  2. 剑指offer之16-20题解
  3. 简述HTML DOM及其节点分类
  4. state的简写方式
  5. wpf treeview调整子菜单间距_完全由C编写,高度可移植,超级牛逼的菜单架构!...
  6. python实践项目(七)
  7. PE格式第七讲,重定位表
  8. 值得学习的100个网站推广方法。新站推广必备
  9. 学习Lambda 表达式
  10. 【Struts2】〖登录功能〗Struts2框架实现登录功能
  11. AutoCAD(英文版)中所有英语词汇的翻译
  12. window10吐槽
  13. Google Earth Engine(GEE)——估计未来人口密度(越南2100年人口预测)
  14. 采集美食网站3032个菜谱数据,对比各大菜系美食的数量、用料
  15. python 两个word文档之间的相似度_如何用 word2vec 计算两个句子之间的相似度?
  16. Mac没有winnt格式_Mac本地视频播放软件----EVPlayer
  17. HTML5-canvas标签结合简单实例讲解
  18. 计算机中pdf怎么预览,如何在浏览器中开启PDF时默认显示Adobe Reader XI工具栏
  19. 【周天计划】如何充分利用每一天
  20. 调节阀卡塞的处理方法

热门文章

  1. sudo apt-get 和dpkg命令大全
  2. 从0到1,一步步开发React的loading组件,并发布到npm上
  3. Flask之WTForms验证
  4. dva 中使用绝对路径/别名的方法
  5. tar 解压缩命令详解
  6. Unity版本更新关注
  7. ThinkingInJava_3
  8. 得到windows系统图标的解决方案(转)
  9. Jenkins 自动化部署上线 ​
  10. python 笔记 之 sqlalchemy操作数据库-创建表