应用场景

数据对于网站来说 是非常重要的 一般 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 数据备份功能相关推荐

  1. mysql数据库的在线数据备份与数据恢复

    MySQL是一种常用的关系型数据库管理系统,它支持在线备份和恢复数据.在线备份指的是在MySQL数据库运行时备份数据,而不会中断或影响现有的数据库服务.在本文中,我们将介绍MySQL数据库的在线数据备 ...

  2. mysql grant all privileges_MySQL数据备份及还原(一)

    关于删库跑路的事故现在已经屡见不鲜了,数据备份的必要性是企业数据管理极其重要的一项工作.关于数据备份.恢复也有很多场景及方法,本系列也会将主要的几种工具通过案例进行演示. 本系列将从逻辑备份及恢复开始 ...

  3. mysql dump gtid_mysqldump导出数据备份 --set-gtid-purged=OFF

    Mysql 数据库 在主从 数据库进行 导出备份和恢复的时候,需要注意是否启用数据库用GTID模式.如果开启,则在mysqldump数据时,应该mysqldump命令加上参数--set-gtid-pu ...

  4. mysql 特殊运算_用特殊的MySQL运算符获得更多数据比较功能

    如果你在最近进行过SELECT或UPDATE查询,那么你很可能用到过一个或者多个MySQL的比较运算符来限制查询的输出结果.比较是大多数SELECT查询不可分割的一部分,而MySQL为这一功能提供了很 ...

  5. .Net+MySQL组合开发(二) 数据访问篇

    一.建立数据库.表.添加数据 这里我们使用图形化操作的SQL Manager 2005 Lite for MySQL来建立数据,它的操作界面非常类似OFFICE软件,使用方便.很容量上手.下面开始建立 ...

  6. mysql数据库(10):数据 备份

    目录 (1)备份某个数据库下的固定某些表 (2)对单个或多个库进行完全备份 (3)对所有库进行完全备份(建立all.sql文件) (1)备份某个数据库下的固定某些表 目标:备份我的yang数据库下的p ...

  7. Diino - 具有自动数据备份功能的国外2G免费网络硬盘

    Diino是一家来自瑞典的国际性专业网络存储公司,拥有18项网络存储.共享相关技术专利,在亚特兰大.伦敦.墨西哥城和斯德哥尔摩均有办公机构,且公司已在瑞士苏黎世股票交易所上市.Diino主要提供面向个 ...

  8. mysql rds备份_云数据库RDS如何进行数据备份

    前言:目前睿江云已经推出的RDS云数据库,用户无需进行额外的传统命令行配置,直接选购即可使用. 常见的RDS备份工具 目前睿江云也支持数据的备份,您可以选择数据备份的策略,进行备份. 那么常见的备份工 ...

  9. 玩转ECS第7讲 | ECS数据保护-数据备份新特性与最佳实践

    简介:本文中,阿里云智能弹性计算专家余初武(悟元)将结合阿里云近期推出的数据备份新特性(快照极速备份.一致性快照组)来介绍云上环境如何做数据备份的最佳实践:适合需要构建云上架构的工程师,架构师和云上实 ...

最新文章

  1. cat /proc/maps 进程内存映射【转】
  2. linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
  3. 推荐一个JavaScript触发器插件,可通过指定频次、指定时间内触发指定的处理函数...
  4. js记录访问网页的ip_亚马逊新手记录之避免店铺关联
  5. 超酷网页 Message Box 样式集合
  6. 一个 Spring Boot 项目该包含哪些?
  7. MYSQL语句和多表查询
  8. 【计算机网络】第一部分 概述(1) 数据通信和网络绪论
  9. android 音视频硬编解码
  10. 快手无水印解析API
  11. 百度Uditor富文本编辑器使用以及图片不显示问题
  12. Linux下更改DNS地址
  13. 心理压力的测试软件,心理压力测量量表(WYB)
  14. 快速读懂Http3协议总结
  15. PDCP 功能与基本概念
  16. 计算机考证模拟运算表案例解析
  17. 3GPP TS 23501-g51 中英文对照 | 4.4.4 Location services
  18. 十家高质量学习网站推荐给所有人
  19. 利用turf.js分析数据---占地分析
  20. 智慧营销 让营销更精准

热门文章

  1. ewomail 内部通讯_教你搭建自己的邮件服务器-Ubuntu 18.04下通过Docker使用EwoMail实现...
  2. IDEA 运行run 为灰色解决办法
  3. 提高Python程序运行效率三种模式第一种:多进程multiprocessing模块
  4. python中使用for循环,while循环,一条命令打印99乘法表
  5. python将文本转化成语音并播放
  6. linux搭建directx环境,微軟開始在WSL 2環境中的Linux支援DirectX
  7. mysql 修改配置生效_MySQL修改my.cnf配置不生效的解决方法
  8. CSDN博客导出备份工具
  9. Intel Realsense D435 如何获取摄像头的内参?get_profile() video_stream_profile() get_intrinsics()
  10. python 列表,元祖,字典的区别