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 .= "\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的更多相关文章
- 基于Git的数据库sql文件的管理——完美解决团队sql操作协同问题
目录 基于Git的数据库sql文件的管理--完美解决团队sql操作协同问题 1.产生背景 2.之前没用Git管理数据库出现的问题 2.1 用同一个库调试带来的问题 3.解决方案 3.1 Sql文件的创 ...
- 使用Sql Server Management Studio 2008将数据导出到Sql文件中
最近需要将一个Sql Server 2005数据库中的数据导出,为了方便,就希望能导出成Sql文件,里面包含的数据是由Insert 语句组成的. 在Sql Server Management St ...
- plsql 把数据导出成为 .sql文件,记住了
今天上午,同事 提醒我.可以直接把数据导出成 .sql 文件,类似于 反编译.见下图
- PHP 导入数据库 sql 文件
使用PHP 可以导入sql来建立数据库.代码如下: <?php $hostname = 'localhost'; $dbname = 'test'; $username = 'root'; $p ...
- 将mysql数据库数据导出为.sql文件
打开Navicat ,在我们要到处的数据上面右击鼠标,然后弹出的快捷菜单上点击“转储SQL 文件”,在再次弹出的子菜单项中选择第一个“数据跟结构”.
- linux命令行下导出导入.sql文件
一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构(以管理员身份运行): ------------------------------------ ...
- mysql导出导入sql文件方法(linux)
一.导入导出.sql文件for Linux: 1.从mysql中导出数据库test: 在终端运行:mysqldump -h localhost -u root -p test > /home/c ...
- 数据库--sql文件
sql 脚本是包含一到多个 sql 命令的 sql 语句集合 使用 Linux: mysqldump 命令 1.导出数据和表结构: mysqldump -u 用户名 -p 数据库名称 > nam ...
- uct框架数据库sql文件导入错误之 sql_mode
uct框架在导入sql文件时可能会出现一种错误 ERROR 1101 (42000): BLOB/TEXT column 'brief' can't have a default value 这是由于 ...
随机推荐
- 探索免费开源服务器tomcat的魅力
Tomcat最初是由Sun的软件架构师詹姆斯·邓肯·戴维森开发的.后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会,并且成为Jakarta 项目中的一个核心项目.因此逐渐成为世界上广 ...
- IDEA 获取类的相对路径和绝对路径
1.相对路径: 结果:action.HelloAction 2.绝对路径 结果:E:\javaProject\JavaEEProject\day08_Struts2_test01\src\action ...
- 2.Jvm 虚拟机栈和栈帧
Jvm 虚拟机栈和栈帧 1.栈帧(frames) 官网描述 A frame is used to store data and partial results, as well as to perfo ...
- Java开发笔记(一百零九)XML报文的定义和解析
前面介绍了JSON格式的报文解析,虽然json串短小精悍,也能有效表达层次结构,但是每个元素只能找到对应的元素值,不能体现更丰富的样式特征.比如某个元素除了要传输它的字符串文本,还想传输该文本的类型. ...
- python实战项目 — 爬取 妹子图网,保存图片到本地
重点: 1. 用def函数 2. 使用 os.path.dirname("路径保存") , 实现每组图片保存在独立的文件夹中 方法1: import requests from l ...
- 数据分析——Pandas的用法(Series,DataFrame)
我们先要了解,pandas是基于Numpy构建的,pandas中很多的用法和numpy一致.pandas中又有series和DataFrame,Series是DataFrame的基础. pandas的 ...
- Wing-AEP平台LWM2M设备接入
实现Wing-AEP中国电信物联网开放平台,LWM2M设备接入 一.准备 接入模组:BC35-G 平台地址:https://www.ctwing.cn/ 点击右上角控制台 点击左侧栏点击产品中心 二. ...
- Numpy中矩阵和数组的区别
矩阵(Matrix)和数组(Array)的区别主要有以下两点: 矩阵只能为2维的,而数组可以是任意维度的. 矩阵和数组在数学运算上会有不同的结构. 代码展示 1.矩阵的创建 采用mat函数创建矩阵 c ...
- 协议——UART(RS232)
一.UART简介 UART(universal asynchronous receiver-transmitter)是一种采用异步串行通信方式的通用异步收发传输器.一般来说,UART总是和RS232成 ...
- 全栈项目|小书架|服务器开发-Koa2中间件机制洋葱模型了解一下
KOA2 是什么? Koa是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小.更富有表现力.更健壮的基石. 通过利用 asyn ...