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 这是由于 ...
随机推荐
- Windows快捷键大全
每天在使用电脑,不会记点快捷键怎行?高效办公从快捷键开始! Windows 10 键盘快捷方式就是按键或按键组合,可提供一种替代方式来执行通常使用鼠标执行的操作. 其他键盘快捷方式 应用中的键盘快捷方 ...
- [Oracle] Io Error: The Network Adapter could not establish the connection 解决方案
Io 异常: The Network Adapter could not establish the connection这个异常的出现一般与数据库和你的PC的设置有关 这种异常的出现大致上有下面几种 ...
- spring框架学习(三)——AOP( 面向切面编程)
AOP 即 Aspect Oriented Program 面向切面编程 首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能. 所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务 ...
- helm chart应用使用示例
有两种方法 一是按照正常流程直接用yaml文件的形式发布应用到k8s集群上 二是把生成好的yaml文件发布到kubeapps应用商店,在应用商店中操作发布应用到k8s集群中 这里采用第二种方式的变种方 ...
- swagger 报错:illegal defaultValue null for param type integer
swagger(版本2.9.2) 刷新报错,错误信息如下图: 问题原因: 根据上面这句报错信息,点进去AbstractSerializableParameter.java:412可以看到 源码, @J ...
- PHP写入文件
file_put_contents('log.txt',PHP_EOL.'zhangsan'.$time.'查看了数据', FILE_APPEND);
- charles4.0 request和response的显示设置
点击右上角的设置按钮 点击preferences 切换到viewers,取消勾选Combine request and response,点击保存即可
- .NET母版实例2(UI页面)
8.<div id="navlist"> <asp:SiteMapDataSource ID="SiteMapDataSource1" ...
- easyui的学习总结
大家都知道easy-ui,样式虽然不怎么骚气,但是使用,小表格,很的大家欢喜 大致总结如下 :属性分为CSS片段和JS片段.CSS类定义:1.div easyui-window 生成一个window窗 ...
- Linux下使用nextcloud搭建个人网盘
市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因: 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云) 付费网 ...