首发于:http://www.zzzzy.com/201406053158.html

       /**
      * Mysql表字段一键生成创建sqlite的SQL 2      * @author: Skiychan <contact@zzzzy.com>
      * $db 数据库
      * $tbname 表名
      * $is_blob 需要保存的图片二进制数组 array("img1","img2","img3")形式,默认为false
      * $retbname 自定义生成sqlite的表名
      * return SQL的语句形式
      */

     public function creat_sqlite($db, $tbname, $is_blob = false, $retbname = false){

         $runsql1 = $db->query("SELECT * FROM `$tbname` limit 1");
         $fields_rows = $runsql1->columnCount();

         $tb_fields_info = array();
         $tb_string = "";
         $dot = "";

         for ($i = 0; $i < $fields_rows; $i++) {
             if ($i == 1) {
                 $dot = ", ";
             }

             $tb_meta = $runsql1->getColumnMeta($i);
             $tb_string .= $dot.$tb_meta['name'];
             //var_dump($tb_meta);

             //如果存在数据且字段存在需要取消的字段中
             if ($is_blob && in_array($tb_meta['name'], $is_blob)) {
                 $tb_string .= " "."blob";
             } else {
                 //如果不需要保存为二进制
                 switch($tb_meta['native_type']){
                     case "VAR_STRING":
                         $tb_string .= " "."varchar";
                         break;

                     case "LONG":
                         $tb_string .= " "."integer";
                         break; 

                     case "BLOB":
                         $tb_string .= " "."text";
                         break;
                     case "TINY":
                         $tb_string .= " "."smallint";
                         break;
                 }
             }

             if (isset($tb_meta['flags'][1]) && ($tb_meta['flags'][1] === "primary_key")) {
                 $tb_string .= " "."PRIMARY KEY";
             }

             if (isset($tb_meta['flags'][0]) && ($tb_meta['flags'][0] === "not_null")) {
                 $tb_string .= " "."NOT NULL";
             }    

             //var_dump($tb_meta);
         }

         //生成的sqlite表名
         $retbname = $retbname == true ? $retbname : $tbname;

         //创建数据的SQL语句
         $creat_data = "CREATE TABLE  IF NOT EXISTS {$retbname} ($tb_string);";  

         return $creat_data;
     }

PHP通过(PDO)Mysql表字段一键生成创建sqlite的SQL的更多相关文章

  1. MySQL 表字段操作

    MySQL 表字段操作 一.增加表字段 1)mysql> alter table 二.删除表字段 三.修改表字段

  2. (转载)根据数据字典表定义的表结构,生成创建表的SQL语句

    <来源网址:http://www.delphifans.com/infoview/Article_221.html>根据数据字典表定义的表结构,生成创建表的SQL语句 //1.  类名:T ...

  3. 一段完整的创建表格的SQL代码

    一段完整的创建表格的SQL代码 使用SQL语句创建一张表,不仅可以可以快速熟悉SQL语句,还可以从这看出一个人对该技能点的熟悉程度. 这里先说明几点: PRIMARY KEY:主键,一张表中只允许有一 ...

  4. 做网站-mysql表字段设计

    https://mp.weixin.qq.com/s/HhdbmQqKmiw9IVnnL0Zyag VARCHAR与CHAR如何选择 使用VARCHAR理由 字段不经常更新 字段比较长,且长度不均(比 ...

  5. Java之数据库表字段有关键字报错java.sql.SQLSyntaxErrorException

    前两天在开发中遇到一个坑,本来我在快乐的做着增删改查,然后悲剧发生了,在查询数据库的过程中,报了java.sql.SQLSyntaxErrorException: 经过排查,是因为数据库表字段中存在关 ...

  6. Mysql表字段命令alter add

    alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4 ...

  7. MySQL 表字段唯一性约束设置方法unique

    1. 建表时加上唯一性约束 CREATE TABLE `t_user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, -- 自增 `username` varchar ...

  8. mysql 表字段不能使用type???

    type 字段 可能跟系统内置字段有冲突吧

  9. C#读取MySql表字段出现System.Byte[]问题

     记录下,用了多字段拼接后在程序中查询出的结果为System.Byte[],而在数据库中查正常 解决办法为:加Convert转换编码   select CONVERT((CASE background ...

随机推荐

  1. Redis_基本类型介绍和指令___1

    1.Key(键) 主要的方法: ->set key(设置) ->get key(得到) ->del key(删除) ->exitst key(存在) -> expires ...

  2. 通过WMI配置IP

    $wmi = gwmi win32_networkadapterconfiguration -filter "ipenabled = 'true'"$wmi.EnableStati ...

  3. DHTMLX 前端框架 建立你的一个应用程序教程(三)--添加一个菜单

    菜单的介绍 这篇我们介绍将菜单组建添加到上节中的布局中: 我们不对菜单做任何处理  只是在这里填充作为界面的一部分. 这里我们介绍的是dhtmlxMenu 组件. 这个组件的数据我们可以从XML或者J ...

  4. java窗体与Flash交互

    最近在研究flash,用flash去读取文件很简单,但是存储文件就很麻烦了. 因此想到用java的窗体进行交互. 下面是DJNativeSwing-SWT-1-0-3-20140708的下载链接: h ...

  5. wins和linux 系统不同编码格式导致的.py执行问题: bad interpreter: No such or file directory

    我在win7上用IDLE编写了一个python文件(MyTopo.py),但是用putty传到VM中的ubuntu系统中,用 ./MyTopo方式执行. 显示: /bin/sh^M: bad inte ...

  6. IP-MAC绑定导致网络故障

    前段时间将一台服务器A的服务迁移至了另外一台服务器B,外网IP地址也顺带迁移过来了,结果网络出现了问题. 其中内网是畅通的,但是外网IP怎么都连不上另外一台路由C(B和C是在一个交换机下的,网段也相同 ...

  7. jQuery $.each的使用方法

    通过jQuery $.each,你可以遍历对象.数组的属性值并进行处理. 使用说明 each函数根据参数的类型实现的效果不完全一致: 1.遍历对象(有附加参数) $.each(Object, func ...

  8. ASP.NET跨页面传值技巧

      1 使用QueryString变量    QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用  ...

  9. Ngen生成Native代码实战及优缺点分析

    先科普一下,.Net是一个用于Windows的托管代码模型,用于高效构建具有视觉上引人注目的用户体验的应用程序.但这个模型生成的代码并非可执行代码,而是由.Net公共语言运行库环境执行的IL代码.所以 ...

  10. javascript面向对象程序设计系列(一)---创建对象

    javascript是一种基于对象的语言,但它没有类的概念,所以又和实际面向对象的语言有区别,面向对象是javascript中的难点之一.现在就我所理解的总结一下,便于以后复习: 一.创建对象 1.创 ...