/**
* 导出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 .= "\r\n--  ".$v."-- \r\n";
     $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.";\r\n";
        }else{
           $sqlInsert = $this->array_to_sql($val);
           $content.="INSERT INTO `$v` VALUES ".$sqlInsert.";\r\n";
        }
     }
  }
  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;
}

PHP导出数据库sql文件,add和update的更多相关文章

  1. 基于Git的数据库sql文件的管理——完美解决团队sql操作协同问题

    目录 基于Git的数据库sql文件的管理--完美解决团队sql操作协同问题 1.产生背景 2.之前没用Git管理数据库出现的问题 2.1 用同一个库调试带来的问题 3.解决方案 3.1 Sql文件的创 ...

  2. 使用Sql Server Management Studio 2008将数据导出到Sql文件中

      最近需要将一个Sql Server 2005数据库中的数据导出,为了方便,就希望能导出成Sql文件,里面包含的数据是由Insert 语句组成的. 在Sql Server Management St ...

  3. plsql 把数据导出成为 .sql文件,记住了

    今天上午,同事 提醒我.可以直接把数据导出成 .sql 文件,类似于 反编译.见下图

  4. PHP 导入数据库 sql 文件

    使用PHP 可以导入sql来建立数据库.代码如下: <?php $hostname = 'localhost'; $dbname = 'test'; $username = 'root'; $p ...

  5. 将mysql数据库数据导出为.sql文件

    打开Navicat ,在我们要到处的数据上面右击鼠标,然后弹出的快捷菜单上点击“转储SQL 文件”,在再次弹出的子菜单项中选择第一个“数据跟结构”.

  6. linux命令行下导出导入.sql文件

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构(以管理员身份运行): ------------------------------------ ...

  7. mysql导出导入sql文件方法(linux)

    一.导入导出.sql文件for Linux: 1.从mysql中导出数据库test: 在终端运行:mysqldump -h localhost -u root -p test > /home/c ...

  8. 数据库--sql文件

    sql 脚本是包含一到多个 sql 命令的 sql 语句集合 使用 Linux: mysqldump 命令 1.导出数据和表结构: mysqldump -u 用户名 -p 数据库名称 > nam ...

  9. uct框架数据库sql文件导入错误之 sql_mode

    uct框架在导入sql文件时可能会出现一种错误 ERROR 1101 (42000): BLOB/TEXT column 'brief' can't have a default value 这是由于 ...

随机推荐

  1. MinGW ,GNU 是什么

    MinGW : Minimalist GNU for Windows MinGW(Minimalist GNU For Windows)是个精简的Windows平台下的 C/C++.ADA及Fortr ...

  2. 关于close_wait状态的理解

    以web服务器产生大量的close_wait状态为例 1.close_wait状态介绍: 客户端主动关闭连接,服务器接收到客户端的FIN,但是还没有发送自己的FIN,此时的状态为close_wait状 ...

  3. Netty原理架构解析

    Netty原理架构解析 转载自:http://www.sohu.com/a/272879207_463994本文转载关于Netty的原理架构解析,方便之后巩固复习 Netty是一个异步事件驱动的网络应 ...

  4. Java基础笔试练习(九)

    1.下面所示的java代码,运行时,会产生()类型的异常 ? int Arry_a[] = new int[10]; System.out.println(Arry_a[10]); A.Arithme ...

  5. pycharm爬取网页数据

    1 python环境的配置 1.1 安装python文件包,放到可以找到的位置 1.2 右键计算机->属性->高级环境设置->系统变量->Path->编辑->复制p ...

  6. day32——进程、操作系统

    day32 进程的基础 程序 一堆静态的代码文件 进程 一个正在运行的程序进程.抽象的概念 被谁运行? 由操作系统操控调用交于CPU运行 ​ 操作系统 管理控制协调计算机中硬件与软件的关系 操作系统的 ...

  7. max_prepared_stmt_count参数

    MySQL报错[mysqld-5.5.17-log]Can't create more than max_prepared_stmt_count statements (current value: ...

  8. [CF868E]Policeman and a Tree

    题目大意:有一棵$n$个点的带边权的树,上面有$m$个罪犯,速度为任意大,有一个警察在点$S$,速度为$1$.若警察和罪犯在同一个地方,罪犯就被干掉了,警察希望干掉所有罪犯时间最短,而罪犯希望最大化这 ...

  9. tomcat线程池调优

    之前项目一直在tomcat下开发,后来在上线之前,需要进行性能安全测试,可是测试的同事反应,登陆口线程并发一多的时候,系统立马就没法登陆了. 中间件是tomcat6.  tomcat的日志总是简洁的很 ...

  10. [转]mongodb authentication 设置权限之后,新建个管理账户和一般数据库用户,在win 7 64bit 环境下测试使用实例

    如果之前安装mongodb时没有使用 --auth,那么必须要卸载MongoDB服务,进行重新安装,设置账号权限才生效! 主要是解决在测试使用mongo db 时候,总是出现的MongoAuthent ...