yii2 mysql save_Yii2 开发 MySQL 数据备份功能
应用场景
数据对于网站来说 是非常重要的 一般 cms 后台 都有 数据备份功能。使用Yii 的第三方拓展 可以快速开发。
spanjeta/yii2-backup
spanjeta/yii2-backup 是基于Yii2 的一款 第三方扩展,安装配置一下可以正常访问,也可以很方便自定义。在开发过程中,因为备份后在 phpMyAdmin 导入出现一些问题。所以做了一些修改。
安装spanjeta/yii2-backup
1、写入扩展包
在项目找到composer.json 打开加入
"require": {
"spanjeta/yii2-backup": "*"
},
2、安装扩展
打开cmd 命令 找到项目目录下 执行 (注意:必须先安装 composer ,否则失败)
composer update
配置spanjeta/yii2-backup
找到 \backend\config\main.php 打开加入以下代码
return[
'modules' => [
'backup' => [
'class' => 'spanjeta\modules\backup\Module',
],
],
]
访问测试数据备份功能
确保你的项目有创建目录的权限,访问 index.php?r=backup 到此扩展安装完毕
修改spanjeta/yii2-backup
默认安装 在\vendor 目录下,找到 \spanjeta\yii2-backup\controllers\ 打开 DefaultController.php 文件,修改以下代码
1、找到 getData() 直接覆盖即可
public function getData($tableName) {
$sql = 'SELECT * FROM ' . $tableName;
$cmd = Yii::$app->db->createCommand ( $sql );
$dataReader = $cmd->query();
$data_string="";
foreach ( $dataReader as $data ) {
foreach ($data as $key => $value) {
if(empty($value)){
unset($data[$key]);
}else{
$datas[$key]=mysql_real_escape_string($value);
}
}
$itemNames = array_keys ( $datas );
$itemNames = array_map ( "addslashes", $itemNames );
$items = join ( '`,`', $itemNames );
$itemValues = array_values ( $datas );
$valueString = join ( "','", $itemValues );
$valueString = "('" . $valueString . "'),";
$values = "\n" . $valueString;
if ($values != "") {
$data_string .= "INSERT INTO `$tableName` (`$items`) VALUES" . rtrim ( $values, "," ) . ";" . PHP_EOL;
}
}
if (empty($data_string)){
return null;
}
if ($this->fp) {
$this->writeComment ( 'TABLE DATA ' . $tableName );
$final = $data_string . PHP_EOL . PHP_EOL . PHP_EOL;
fwrite ( $this->fp, $final );
} else {
$this->tables [$tableName] ['data'] = $data_string;
return $data_string;
}
}
2、搜索以下代码,并注释掉
fwrite ( $this->fp, 'SET AUTOCOMMIT=0;' . PHP_EOL );
3、找到 actionCreate() 直接覆盖即可
public function actionCreate() {
$tables = $this->getTables ();
if (! $this->StartBackup ()) {
Yii::$app->user->setFlash ( 'success', "Error" );
return $this->render ( 'index' );
}
foreach ( $tables as $tableName ) {
$this->getColumns ( $tableName );
$this->getData ( $tableName );
}
$this->EndBackup ();
$this->redirect ( array (
'index'
) );
}
yii2 mysql save_Yii2 开发 MySQL 数据备份功能相关推荐
- mysql数据库的在线数据备份与数据恢复
MySQL是一种常用的关系型数据库管理系统,它支持在线备份和恢复数据.在线备份指的是在MySQL数据库运行时备份数据,而不会中断或影响现有的数据库服务.在本文中,我们将介绍MySQL数据库的在线数据备 ...
- mysql grant all privileges_MySQL数据备份及还原(一)
关于删库跑路的事故现在已经屡见不鲜了,数据备份的必要性是企业数据管理极其重要的一项工作.关于数据备份.恢复也有很多场景及方法,本系列也会将主要的几种工具通过案例进行演示. 本系列将从逻辑备份及恢复开始 ...
- mysql dump gtid_mysqldump导出数据备份 --set-gtid-purged=OFF
Mysql 数据库 在主从 数据库进行 导出备份和恢复的时候,需要注意是否启用数据库用GTID模式.如果开启,则在mysqldump数据时,应该mysqldump命令加上参数--set-gtid-pu ...
- mysql 特殊运算_用特殊的MySQL运算符获得更多数据比较功能
如果你在最近进行过SELECT或UPDATE查询,那么你很可能用到过一个或者多个MySQL的比较运算符来限制查询的输出结果.比较是大多数SELECT查询不可分割的一部分,而MySQL为这一功能提供了很 ...
- .Net+MySQL组合开发(二) 数据访问篇
一.建立数据库.表.添加数据 这里我们使用图形化操作的SQL Manager 2005 Lite for MySQL来建立数据,它的操作界面非常类似OFFICE软件,使用方便.很容量上手.下面开始建立 ...
- mysql数据库(10):数据 备份
目录 (1)备份某个数据库下的固定某些表 (2)对单个或多个库进行完全备份 (3)对所有库进行完全备份(建立all.sql文件) (1)备份某个数据库下的固定某些表 目标:备份我的yang数据库下的p ...
- Diino - 具有自动数据备份功能的国外2G免费网络硬盘
Diino是一家来自瑞典的国际性专业网络存储公司,拥有18项网络存储.共享相关技术专利,在亚特兰大.伦敦.墨西哥城和斯德哥尔摩均有办公机构,且公司已在瑞士苏黎世股票交易所上市.Diino主要提供面向个 ...
- mysql rds备份_云数据库RDS如何进行数据备份
前言:目前睿江云已经推出的RDS云数据库,用户无需进行额外的传统命令行配置,直接选购即可使用. 常见的RDS备份工具 目前睿江云也支持数据的备份,您可以选择数据备份的策略,进行备份. 那么常见的备份工 ...
- 玩转ECS第7讲 | ECS数据保护-数据备份新特性与最佳实践
简介:本文中,阿里云智能弹性计算专家余初武(悟元)将结合阿里云近期推出的数据备份新特性(快照极速备份.一致性快照组)来介绍云上环境如何做数据备份的最佳实践:适合需要构建云上架构的工程师,架构师和云上实 ...
最新文章
- cat /proc/maps 进程内存映射【转】
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- 推荐一个JavaScript触发器插件,可通过指定频次、指定时间内触发指定的处理函数...
- js记录访问网页的ip_亚马逊新手记录之避免店铺关联
- 超酷网页 Message Box 样式集合
- 一个 Spring Boot 项目该包含哪些?
- MYSQL语句和多表查询
- 【计算机网络】第一部分 概述(1) 数据通信和网络绪论
- android 音视频硬编解码
- 快手无水印解析API
- 百度Uditor富文本编辑器使用以及图片不显示问题
- Linux下更改DNS地址
- 心理压力的测试软件,心理压力测量量表(WYB)
- 快速读懂Http3协议总结
- PDCP 功能与基本概念
- 计算机考证模拟运算表案例解析
- 3GPP TS 23501-g51 中英文对照 | 4.4.4 Location services
- 十家高质量学习网站推荐给所有人
- 利用turf.js分析数据---占地分析
- 智慧营销 让营销更精准
热门文章
- ewomail 内部通讯_教你搭建自己的邮件服务器-Ubuntu 18.04下通过Docker使用EwoMail实现...
- IDEA 运行run 为灰色解决办法
- 提高Python程序运行效率三种模式第一种:多进程multiprocessing模块
- python中使用for循环,while循环,一条命令打印99乘法表
- python将文本转化成语音并播放
- linux搭建directx环境,微軟開始在WSL 2環境中的Linux支援DirectX
- mysql 修改配置生效_MySQL修改my.cnf配置不生效的解决方法
- CSDN博客导出备份工具
- Intel Realsense D435 如何获取摄像头的内参?get_profile() video_stream_profile() get_intrinsics()
- python 列表,元祖,字典的区别