首发于: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;
     }

最新文章

  1. javascript 函数重载 overloading
  2. net与树莓派的情缘(一)
  3. Kosaraju算法---强联通分量
  4. android加载大量图片内存溢出的三种方法
  5. 整数划分 (区间DP)
  6. 使用Markdown写文档
  7. Native VS H5 VS React Native
  8. unity3d 延迟处理方法
  9. SQL条件表达式
  10. 图标字体库(用CSS样式生成搜索、购物车等图标)
  11. eclipse(Version: Mars.2 Release (4.5.2)) groovy plugin install process.
  12. Python属性(@property)
  13. AspNetCore MVC + Vue.Js 项目搭建
  14. [P1082][NOIP2012] 同余方程 (扩展欧几里得/乘法逆元)
  15. 前端开发必须知道的JS(一) 原型和继承
  16. python+selenium win32gui实现文件上传 enumerate()
  17. ios开发之--VC的生命周期
  18. Spring Boot中使用Spring Security进行安全控制
  19. linux:将job放在后台执行的方法
  20. 《JavaScript 高级程序设计》总结

热门文章

  1. Eclipse reports that Android SDK Content Loader has encountered a problem. parseSdkContent failed.
  2. Linux crontab 命令格式与具体样例
  3. 四种方案解决ScrollView嵌套ListView问题
  4. iostat详解
  5. UDP包的最大大小是多少?
  6. 正确的使用枚举(Enum)
  7. 【邮件】imap与pop3的区别
  8. 玩转html5&lt;canvas&gt;画图
  9. i++与++i的区别
  10. JLabel跟label