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;
    }
  • 相关阅读:
    java积累的细节问题
    如何用IDEA创建springboot(maven)并且整合mybatis连接mysql数据库和遇到的问题
    CentOS 7最小化安装图解
    不用插件!教你一键显示浏览器自动保存的密码
    pycharm 配置autopep8(亲测可行)
    钉钉机器人自动推送股票信息
    金蝶云星空通过数据库删除指定销售合同
    金蝶云星空复选框审批设置
    datetime小练习
    time and datetime
  • 原文地址:https://www.cnblogs.com/pingliangren/p/5586878.html
Copyright © 2011-2022 走看看