我需要的:

一个高效的SQL脚本生成器来替换下面的。

的背景。

一个非常简单的程序,但我需要一个更有效的方式来生成它,我有这个代码的原因是我需要其他开发人员能够在我的平台和数据库表上创建“模块”,但我阻止他们拥有完全访问权限到核心数据库,他们必须使用我的$ api-> database-> access层来访问他们的表/数据。它阻止了对我的程序核心部分的任何请求。

以下是我期望如何使用这些函数来构建SQL创建表脚本。

SqlField类/函数只是返回传递值的平面数组,没有什么特别的。

//The structure of the params are..

//$fields[] = SqlField::create($f_name, $f_type, $null, $auto_inc, $is_pk, $is_unique);

$fields[] = SqlField::create('id', 'int(7)', 0, 1, 1, 1);

$sql = $sqlTable->createTable('MyTableName', $fields );以下是我写得很快的功能,但它很快就变得混乱,而且还没有完成。

public function createTable($tableName, $fields = array()) {

$sql="CREATE TABLE xmod_".$tableName." ( \r\n";

$isinit = true;

foreach($fields as $field) {

$sql .= ($isinit)? "" : ", \r\n" ;

$isinit = false;

$sql .= "".$field[0]." ".$field[1]." ";

if($field[2] == true) {

$sql .= "NOT NULL ";

}

if($field[3] == true) {

$sql .= "auto_increment ";

}

}

$isinit = true;

//Work on the primary keys

foreach($fields as $field) {

if($field[4] == 1) {

$sql .= ($isinit)? "" : ", \r\n" ;

$isinit = false;

$sql .= "PRIMARY KEY (".$field[0].")";

}

}

$isinit = true;

//Work on the unique fields

foreach($fields as $field) {

if($field[5] == 1) {

$sql .= ($isinit)? "" : ", \r\n" ;

$isinit = false;

$sql .= "UNIQUE id (".$field[0].")";

}

}

$sql .= "\r\n )";

return $sql;

}

php脚本来创建一个表,PHP - SQL脚本创建器相关推荐

  1. oracle 12创建一个表,oracle 12 c 创建表空间,用户名,及表

    -----------------------------------------12C start------------------------------------------- -- 创建表 ...

  2. 使用SQL语句创建数据表(SQL Server)

    数据库 表的创建(SQL Server) 文章目录 数据库 表的创建(SQL Server) 使用SQL语句创建数据表 使用SQL语句创建数据表 CREATE TABLE的语法格式如下 databas ...

  3. mysql创建多表视图sql语句_SQL语法(包括建库、建表、建视图、查询、增加、删除、修改)...

    SQL语法(包括建库.建表.建视图.查询.增加.删除.修改) SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE ...

  4. spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

      1.spool 命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创 ...

  5. oracle使用sql文件创建表,使用SQL*Loader创建外部表之一

    使用SQL*Loader创建外部表: ---创建目录对象并授权给Scott用户: SQL> create or replace directory loader_home as '/home/o ...

  6. spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站...

      1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...

  7. MySQL数据库:创建一个表,并执行插入、修改和删除数据操作

    一: 展示数据库:mysql> show databases; 二: 创建数据库:create database company;使用所创建的数据库:mysql> use company; ...

  8. Oracle 中 误删 emp,dept ,恢复 emp 和 dept表的sql脚本.

    Oracle 中 误删 emp,dept ,恢复 emp 和 dept表的sql脚本. 如果是不小心,删除了oracle中自带的emp 和 dept表,就能用下面的sql语句执行一下用来恢复.. 或者 ...

  9. Java连接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash

    准备工作 1.创建Java的Maven项目 创建好的目录结构如下: 另外注意junit的版本,最好不要太高,最开始笔者使用的junit4.12的,发现运行的时候会报错.最后把Junit的版本改成4.7 ...

最新文章

  1. Java关于远程调试程序教程
  2. 《软件工程》第01章在线测试
  3. Go案例说明defer panic recover
  4. solr 中文分词器IKAnalyzer和拼音分词器pinyin
  5. 高中计算机结业考试总结,高中考试总结
  6. UBUNTU : Destination Host Unreachable
  7. 【AI视野·今日CV 计算机视觉论文速览 第188期】Wed, 23 Dec 2020
  8. iPhone降价后销量惊人 库克本周将再度访华
  9. #include《》和#include“”的区别
  10. SCI-hub论文下载器(附下载方法)
  11. python 学生编程--3 多彩同心圆
  12. QTreeView 使用 QStandardItemModel
  13. 如何在iconfont.cn 下载ttf格式的图标
  14. 如何查看征信报告上的不良信息?
  15. 腾讯阿里面试题【图文详解】:25匹马5赛道选前三,最少要跑几次?赛几场?
  16. java中explain什么意思_explain详解
  17. 你需掌握的CSS知识都在这了
  18. 为什么要阅读——兼分享《首先,打破一切常规》[中译文]:世界顶级管理者的成功秘诀/(美)马库斯#183;白金汉,(美)柯特#183;科夫曼 著...
  19. C++设计模式概念与设计模式描述语言(UML)
  20. git代码库pull报错:error: Your local changes to the following files would be overwritten by merge

热门文章

  1. shell编程-分支语句
  2. Matlab sumsqr函数
  3. keras 多层lstm_机器学习100天-Day2403 循环神经网络RNN(训练多层RNN)
  4. AUTOSAR从入门到精通100讲(一)-SPI、UART、I2C总线详解
  5. dhtmlXGrid复选框点击事件
  6. 如何做好内容策划并完成一篇合格的深度文?
  7. HTML5表单新增元素与属性(form、formaction、formmethod、formenctype、formtarget、autofous、required、labels)
  8. 微信小程序源码下载链接
  9. 单片机c语言参考文献最新,[2018年最新整理]10个单片机C语言实例.doc
  10. html中给div设置的属性怎么样才能拿得到_HTML与CSS结合的三种方式:优先级比较...