zoukankan      html  css  js  c++  java
  • PHP导出数据库sql文件,add和update

    /**
    * 导出sql文件
    */
    public function exportSql(){
      //需要导出的数据库表存入到数组当中
      $tables =array("T_CRM_QUEUE_FAIL","T_CRM_QUEUE");
     
     //定义一个变量存放sql语句
      $content = '';
     //打开并写入sql文件
      $fp    = fopen("./Upload/exportSql/".date('Ymd').".sql",'w+');
      foreach ($tables as $k=>$v){
         $content .= " --  ".$v."-- ";
         $sql   = "SELECT * FROM ".$v;
         $tablesInfo= M()->query($sql);
         //将每个表的数据导出到文件
         foreach($tablesInfo as $key=> $val){
            if($val['CDATE'] != $val['UDATE']){//如果添加时间和修改时间不一致,则为修改
               $sqlInsert = $this->array_to_sql($val,'update');
               $content.="UPDATE `$v`  ".$sqlInsert."; ";
            }else{
               $sqlInsert = $this->array_to_sql($val);
               $content.="INSERT INTO `$v` VALUES ".$sqlInsert."; ";
            }
         }
      }
      fputs($fp,$content );//写入文件
      fclose($fp);//关闭
    }
    /**
    * [array_to_sql 根据数组key和value拼接成需要的sql]
    * @param [type] $array  [key, value结构数组]
    * @param string $type  [sql类型insert,update]
    * @param array $exclude [排除的字段]
    * @return [string]     [返回拼接好的sql]
    */
    public  function array_to_sql($array, $type='insert', $exclude = array()){

      $sql = '';
      if(count($array) > 0){
         foreach ($exclude as $exkey) {
            unset($array[$exkey]);//剔除不要的key
         }

         if('insert' == $type){
            $keys = array_keys($array);
            $values = array_values($array);
            $col = implode("`, `", $keys);
            $val = implode("', '", $values);
            $sql = "(`$col`) values('$val')";
         }else if('update' == $type){
            $tempsql = '';
            $temparr = array();
            foreach ($array as $key => $value) {
               $tempsql = "'$key' = '$value'";
               $temparr[] = $tempsql;
            }

            $sql = implode(",", $temparr);
         }
      }
      return $sql;
    }
  • 相关阅读:
    module 和 component 的区别
    API、SDK、DLL有什么用?
    app基本控件
    PaaS是什么?
    js回调函数(callback)(转载)
    多语言 SEO
    axure rp 8.0
    整天看用户埋点数据,知道数据是咋来的吗?
    发现恶意ip大量访问 可使用命令进行封禁
    阿里云服务器迁移更改IP,导致网站挂掉
  • 原文地址:https://www.cnblogs.com/pingliangren/p/5586878.html
Copyright © 2011-2022 走看看