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

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

 /**
     * 数据库表单创建方法
     * @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 @ 2021-07-09 17:38  林恒  阅读(133)  评论(0编辑  收藏  举报