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 这是由于 ...
随机推荐
- torch7安装的坑
https://github.com/torch/torch7/issues/1086 sudo su export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_O ...
- Word 自带公式使用方法技巧(11)
1. 快捷命令 在Word中输入「Alt+=」,可以打开Word中自带公式编辑器.这个编辑器似乎没有什么特别,但其实 Word 2010 以后是支持 LaTeX 语法的.常用规则如下: 分号: a/b ...
- Yii2实现手机二维码扫一扫登入
一 建数据表 scancode randnumber字段存储的是一个随机码,可以用uuid token是一个提取用户信息的字段,说白了就是user表的唯一键,如果不担心用户id外泄,用user_id ...
- 【LEETCODE】52、数组分类,简单级别,题目:717,661,746,628,643,849
package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ...
- 一行代码让3D翻转后的文本恢复清晰
FlashPlayer10提供的3D功能有一个相当蛋疼的问题:只要设置过rotationX.rotationY或者rotationZ属性,显示对象里面的文字(尤其是设备字体,位图文本)就会一直处于模糊 ...
- Junit5中实现参数化测试
从Junit5开始,对参数化测试支持进行了大幅度的改进和提升.下面我们就一起来详细看看Junit5参数化测试的方法. 部署和依赖 和Junit4相比,Junit5框架更多在向测试平台演进.其核心组成也 ...
- Different Subsets For All Tuples CodeForces - 660E (组合计数)
大意: 定义$f(a)$表示序列$a$本质不同子序列个数. 给定$n,m$, 求所有长$n$元素范围$[1,m]$的序列的$f$值之和. 显然长度相同的子序列贡献是相同的. 不考虑空串, 假设长$x$ ...
- [转]mongodb authentication 设置权限之后,新建个管理账户和一般数据库用户,在win 7 64bit 环境下测试使用实例
如果之前安装mongodb时没有使用 --auth,那么必须要卸载MongoDB服务,进行重新安装,设置账号权限才生效! 主要是解决在测试使用mongo db 时候,总是出现的MongoAuthent ...
- C# VS启动调试项目允许外网调试(微信开发)
转发链接:https://blog.csdn.net/sinat_23050697/article/details/62889693 主要效果是本机调试网站,将网站发布到某域名(如m16758r728 ...
- PHP利用preg_split函数格式化日期
// 2018/2/13 00:26:00.000 function format_date($date, $format='Y-m-d H:i:s') { if(empty($date)) retu ...