当前位置: 首页 > news >正文

fast admin实现多数据库导入数据

思路

1创建多数据库连接
2后端的前台代码能使用get或者post请求传递选中数据给后台
3后台能够接收到
4后台接收到id或者全字段数据后对数据进行处理,然后使用多数据库操作将其存入第二个数据库

实现

1config文件下创建新数据库连接

'db_config2' => [// 数据库类型'type' => 'mysql',// 服务器地址'hostname' => '127.0.0.1',// 数据库名'database' => 'test',// 用户名'username' => 'root',// 密码'password' => '123456',// 端口'hostport' => '3306',// 连接dsn'dsn' => '',// 数据库连接参数'params' => [],// 数据库编码默认采用utf8'charset' => 'utf8',// 数据库表前缀'prefix' => 'fa_',],

前端网页
再index.html文件中添加按钮

<a class="btn btn-primary btn-more dropdown-toggle btn-disabled btn-dialog" data-url="user/user/option" id='chuancan' data-toggle="dropdown">一键导出</a>

此时前端就能正常显示按钮,然后为按钮绑定事件
这里请把data_url改成后端地址,id改成js获取的名称
然后再js代码的

 // 为表格绑定事件Table.api.bindevent(table);

这句初始化代码下添加操作

 // get方法,gpt生成,能传递,但是无法二次传递$(document).on('change','#table .bs-checkbox [type="checkbox"]',function (){console.log(Table.api.selectedids(table));//测试是否成功let url=$('#chuancan').attr('data-url')let ids=Table.api.selectedids(table)url=url.split('?')[0]if(ids.length){url+='?'url+='id='+Table.api.selectedids(table).join(',')}console.log(url, '<<url')//测试路径是否正确$('#chuancan').attr('data-url',url)})

这里是使用了change监听点击事件,使用get传参的方式给后端请求参数,里面的console.log是为了打印传递的数据

后端接收前端传递的参数

$selectids = $this->request->get('id');$selectids = explode(',',$selectids);//查询本地数据库$res = model('user')->where('id','in',$selectids)->select();$filteredData = [];

接收到数据后进行处理

 foreach ($res as $result) {// 使用模型的getData方法获取所有属性值,这样可以不受保护属性的影响$userData = $result->getData();// 移除不需要的字段,这里列出您不想保留的字段名$fieldsToRemove = ['id', 'group_id','createtime', 'updatetime', 'jointime', 'prevtime', 'logintime'];// 使用array_diff_key过滤掉不需要的键$filteredUserData = array_diff_key($userData, array_flip($fieldsToRemove));// 将处理后的数据加入到结果数组$filteredData[] = $filteredUserData;}//        $len = count($filteredData)-1;foreach ($filteredData as $value) {$sql = "INSERT INTO `user` (`username`, `nickname`, `password`, `mobile`, `email`) VALUES ('{$value['username']}', '{$value['nickname']}', '{$value['password']}', '{$value['mobile']}', '{$value['email']}')";try {$result = Db::connect(config("db_config2"))->execute($sql);} catch (\Exception $exception) {// 打印错误信息echo "用户".$value['username'].'导出失败' . $exception->getMessage() . "\n";// 继续执行下一次循环continue;}}if ($result){print_r(['msg'=>'导入成功','code'=>200]);}

相关文章:

  • printf 一次性写
  • 网络协议二
  • 【Nacos】docker-compose启动nacos v2.2.3,启动时修改默认密码不使用naocs
  • ChatGPT Edu版本来啦:支持GPT-4o、自定义GPT、数据分析等
  • 全文检索-ElasticSearch
  • 在python中连接了数据库后想要在python中通过图形化界面显示数据库的查询结果,请问怎么实现比较好? /ttk库的treeview的使用
  • 【网络原理】HTTP|认识请求“报头“|Host|Content-Length|Content-Type|UA|Referer|Cookie
  • 07C回调函数
  • SpringCloud Sleuth 分布式请求链路跟踪
  • 【控制实践——四旋翼无人机】【一】四旋翼无人机运动分析和建模
  • Mysql全文搜索和LIKE搜索有什么区别
  • 【PB案例学习笔记】-15怎样限制应用程序运行次数?
  • Ant Design Vue 动态表头并填充数据
  • 解决方案:ANSYS旋转机械行业
  • 鸿蒙开发接口资源调度:【@ohos.workScheduler (延迟任务调度)】
  • [译]CSS 居中(Center)方法大合集
  • 0x05 Python数据分析,Anaconda八斩刀
  • JavaScript实现分页效果
  • Laravel 中的一个后期静态绑定
  • mongodb--安装和初步使用教程
  • MySQL主从复制读写分离及奇怪的问题
  • Python - 闭包Closure
  • Redis学习笔记 - pipline(流水线、管道)
  • REST架构的思考
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Vue2.x学习三:事件处理生命周期钩子
  • vue-router 实现分析
  • vuex 学习笔记 01
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 解决iview多表头动态更改列元素发生的错误
  • 警报:线上事故之CountDownLatch的威力
  • 面试遇到的一些题
  • 如何在GitHub上创建个人博客
  • 入门级的git使用指北
  • 使用 QuickBI 搭建酷炫可视化分析
  • 学习使用ExpressJS 4.0中的新Router
  • 用简单代码看卷积组块发展
  • ionic异常记录
  • ###C语言程序设计-----C语言学习(3)#
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (MATLAB)第五章-矩阵运算
  • (Matlab)使用竞争神经网络实现数据聚类
  • (二)Eureka服务搭建,服务注册,服务发现
  • (十三)MipMap
  • (算法)硬币问题
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一一四)第九章编程练习
  • .apk文件,IIS不支持下载解决
  • .htaccess配置常用技巧
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • [ solr入门 ] - 利用solrJ进行检索
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [100天算法】-实现 strStr()(day 52)
  • [AI Google] 使用 Gemini 取得更多成就:试用 1.5 Pro 和更多智能功能