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 这是由于 ...
随机推荐
- 【Linux】多线程入门详解
背景知识: 1.每次进程切换,都存在资源的保持和恢复动作,即上下文切换 2.进程的引入虽然可以解决多用户的问题,但是进程频繁切换的开销会严重影响系统性能 3.同一个进程内部有多个线程,这些线程共享的是 ...
- JavaScript是单线程还是多线程(转)
多线程要考虑线程之间的资源抢占,死锁,冲突之类一系列问题.JavaScript作为一门客户端脚本,貌似没有多线程的一些列问题.那么JavaScript是单线程还是多线程?通过查资料总结了JavaScr ...
- Oracle 11g安装过程工作Oracle数据库安装图解
一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符. 官方下地址: oracle.com/tec ...
- .NET母版页实例(UI页面)
全文注释: 1.<!DOCTYPE>声明位于文档中的最前的位置,处于<html>标签之前. 2.此标签可告知浏览器文档使用哪种HTML或XHTML规范 3.<!DOCTY ...
- Oracle.EntityFrameworkCore使用时报错:ORA-00933:SQL命令未正确结束
如果你在使用 Oracle.EntityFrameworkCore 在执行一些分页查询或者其他数据操作时,遇到“ORA-00933:SQL命令未正确结束”, 请先检查你的DbContext中UseOr ...
- Thread-specific data(TSD)线程私有数据
Thread-specific data(TSD)线程私有数据 http://blog.chinaunix.net/uid-26885237-id-3209913.html linux多线程编程中引入 ...
- c++线程同步之信号量
// MutexExDlg.h : 头文件 // #pragma once // CMutexExDlg 对话框 class CMutexExDlg : public CDialogEx { // 构 ...
- python进程不能并行的原因,进程阻塞
上图红色框的写法进程会阻塞,并不能实现多进程.这种写法不需要调用start方法也会执行. 注意:正常写法是上图红框下面的代码,即可实现多进程.
- 用PL/SQL工具连接Oracle数据库的时报错:ORA-12638: 身份证明检索失败的解决方法
本地客户端用PLSQL Developer连接远程数据库时提示: ORA-12638: 身份证明检索失败!!! 解决方法一: 此目录下F:\myorcl\product\11.2.0\client_1 ...
- 背部——哑铃&杠铃