PHP 数据库表单创建方法记录(储存三方接口数据必用)

最近项目在对接第三方接口数据,这里分享下我用来偷懒的一个PHP方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/**
    * 数据库表单创建方法
    * @return string
    * @throws \Exception
    */
   public function createtable($js,$name)
   {
       //根据JSON数据,自动创建表
        $pre="";
        $table=$pre.$name;//表名
        $id="id";//主键ID
         
        //is_numeric();
        $lstr="";
        $i=0;
       foreach($js as $k =>$v){
           if(is_numeric($v)){
               if($id==$k){
                   $lstr=$lstr."`".$id."` int(11) UNSIGNED NOT NULL";
               }else{
                   if(is_bool($js[$k])){
                       $v=$v?1:0;
                       $lstr=$lstr." `$k` tinyint(1) DEFAULT '".$v."'";   
                   }else{
                       if(@strlen($v)<255){
                           $lstr=$lstr." `$k` varchar(255) DEFAULT NULL";
                       }else{
                           $lstr=$lstr." `$k` int(11) DEFAULT 0";
                       }
                   }
                          
               }
           }else{
                $lstr=$lstr." `$k` varchar(255) DEFAULT NULL";
           }
           $lstr=$lstr.",";
           $i=$i+1;
       }
       $lstr=substr($lstr,0,strlen($lstr)-1);
       $str="CREATE TABLE `".$table."` (
         ".$lstr."
       ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
       ALTER TABLE `".$table."`
         ADD PRIMARY KEY (`".$id."`);
        ALTER TABLE `".$table."`
         MODIFY `".$id."` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
       COMMIT;";
       return $str;
   }

使用这个方法后,创建数据库的步骤可以直接替换为语句生成,但是前提是接口有返回值。

如果本文对你有所帮助,麻烦你点个赞。

posted @   林恒  阅读(143)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
点击右上角即可分享
微信分享提示