<?php
declare (strict_types=1);

namespace app\command;

use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
use think\facade\Db;

class Hello extends Command
{
protected function configure()
{
// 指令配置
$this->setName('hello')
->setDescription('测试');
}

protected function execute(Input $input, Output $output)
{
// 指令输出
$output->writeln('执行中');
$output->writeln(sprintf("已处理 %d 条数据", 10));
exit;
// 设置永不退出
set_time_limit(0);

$cursor = Db::connect('kuaidian')
->table('wx_member')
->where('mobile', '>', 0)
->field("id,mobile,nickname,status,addtime,last_time,balance")
->cursor();
$count = 0;
$maxInserNum = 0;
$insertAll = [];
foreach ($cursor as $v) {
$count++;
$userTab = userTab($v['mobile']);
$user = Db::name($userTab)
->where("mobile", $v['mobile'])
->field("uid")
->find();

if (!isset($user['uid'])) {
$maxInserNum++;
//执行插入
$userData = [];
$userData["uid"] = creatId($v['mobile'] . rand(1, 9999999));
$userData["name"] = $v['nickname'];
$userData["mobile"] = $v['mobile'];
$userData["reg_time"] = date("Y-m-d H:i:s", $v['addtime']);
$userData["last_time"] = date("Y-m-d H:i:s", $v['last_time']);
$userData["avatar"] = "dinggedan-avatar/avatar.png";
$userData["status"] = $v['status'];
$userData["sex"] = 1;
$userData["zxtime"] = "";
$userData["birthday"] = "";
$userData["balance_xiche"] = $v['balance'];
if (!key_exists($userTab, $insertAll)) {
$insertAll[$userTab] = [];
}
array_push($insertAll[$userTab], $userData);
} else {
//执行更新
Db::name($userTab)->where("uid", $user['uid'])->update(['balance_xiche' => $v['balance']]);
}

// 每次100数据插入一次
if ($maxInserNum >= 100) {
foreach ($insertAll as $tab => $datas) {
Db::name($tab)->insertAll($datas);
}
$insertAll = [];
$maxInserNum = 0;
}
$output->writeln(sprintf("已处理 %d 条数据", $count));
}
$output->writeln('执行完毕!');
}
}

thinkphp 命令行执行导入的更多相关文章

  1. django源码(2.0.2)粗解之命令行执行

    前言 django的命令行在整个的django web开发中都会经常用到,而且是必须得用到.所以,能够了解下django的命令行实现其实是非常有帮助的. 如果大家比较关心django命令的详细说明和使 ...

  2. 关于thinkphp 命令行

    很多人做多年开发只懂得PHP能在浏览器下运行或者只能结合APACHE等WEB服务器运行,却不晓得,PHP也能用命令行执行,或许是由于大多人在WINDOWS平台做开发部署运行,比较少接触LINUX. T ...

  3. thinkphp命令行生成模型类

    thinkphp命令行生成模型类 当你需要创建大量的模型类的时候,不妨考虑下命令行生成,可以快速创建模型类. 在windows下面,使用Win+R输入cmd进入命令控制台,切换到项目根目录(也就是th ...

  4. Python命令行执行.py文件提示ModuleNotFoundError:No module named 'XXX'解决办法

    原因:在命令行执行.py文件找不到包是因为我们没有把项目路径保存,可以通过sys.path.append()保存项目路径,执行后就能成功. ############################## ...

  5. Jmeter(6)命令行执行

    Jmeter执行方式有2种:GUI和非GUI模式 GUI:在Windows电脑上运行,图形化界面,可直接查看测试结果,但是消耗压力机资源较高 非GUI:通过命令行执行,无图形化界面,不方便查看测试结果 ...

  6. linux命令行执行db2存储过程

    存储过程代码如下: CREATE PROCEDURE proc_sum2(IN n INT,OUT sum INT,OUT j INT) BEGIN DECLARE i INT; ; ; ; WHIL ...

  7. mysql命令行执行外部文件

    mysql命令行执行外部文件

  8. android程序中使用命令行及获得命令行执行后的内容

    在开发android项目中,需要在程序中使用命令行执行,获得命令行执行后的结果并做处理. 下面是自己写的一个小例子,供以后参考使用: public String android_command(){ ...

  9. 命令行执行php脚本 中$argv和$argc

    在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚 ...

  10. php 运行linux命令 与 linux下命令行执行php

    1.php运行linux命令 exec函数:string exec(string command, string [array], int [return_var]);  执行函数后不输出结果,返回最 ...

随机推荐

  1. Nmap 语法及示例

    Nmap 语法及示例 基本语法 Nmap的基本语法结构如下: nmap [scan types] [options] [target] [scan types]: 标识扫描类型,如:TCP.UDP等. ...

  2. [业界方案] 智能运维AIOps-学习笔记

    [业界方案] 智能运维-学习笔记 目录 [业界方案] 智能运维-学习笔记 0x00 摘要 0x01 AIOps 背景 1.1 AIOps概述 1.2 AIOps场景 1.3 AIOps能力 1.4 A ...

  3. .gitignore 文件添加新项后需要做的处理

    有问题敬请评论告知作者. .gitignore 文件添加新项后,已追踪的文件仍然会被追踪.(只要执行过 git add 的文件就会被追踪,追踪它的修改) 怎么取消追踪呢? 想要取消文件追踪可以使用命令 ...

  4. MAC消息认证码介绍

    此MAC是密码学概念,与计算机网络不同 为什么有了摘要算法还要有MAC 摘要算法保障的是消息的完整性 归根到底就是由H(x)来保证x的完整 那么问题来了,如果我知道你所使用的摘要算法(例如中间人攻击) ...

  5. 从汇编层解读Golang的闭包实现:逃逸分析与性能影响

    本文精心梳理了一系列面试中具有一定难度的高频Golang问题,其中部分知识点可能你之前未曾深入探究,然而它们却在面试和实际工作中至关重要. 包括:Golang的基础语法.并发模型.内存管理等核心知识点 ...

  6. php获取类名

    <?php class ParentClass { public static function getClassName() { return __CLASS__; } } class Chi ...

  7. Ubuntu通过VMware虚拟机安装步骤

    1.下载Ubuntu系统镜像 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.这个错误需要BIOS CPU里面设置一下,具体问度娘. 18 ...

  8. redmine 127访问成功,其他机器不能访问

    添加防火墙 入站规则

  9. linux tmux 使用教程

    前言 Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具. 本文介绍如何使用 Tmux. 一.Tmux 是什么? 1.1 会话与进程 命令行的典型使用 ...

  10. go mod 安装使用 beego

    go module基本使用 // 创建目录,初始化新项目 mkdir beemod cd beemod go mod init beemod 创建 server.go 文件 package main ...