php tp3.2 脚本大量数据操作思路

public function update_point(){
        ini_set('memory_limit','3072M');    // 临时设置最大内存占用为3G
        set_time_limit(0);   // 设置脚本最大执行时间 为0 永不过期
        $pageSize = 1000;
        $i = 0;
        $j = 0;
        $t = 0;
        for ($x = 1; $x >= 0; $x++) {
            $payok = M('pay_ok', 'cy_')
                ->field(['id', 'amount','gameid', 'regagent'])
                ->page($x, $pageSize)
                ->select();
            $total = count($payok);
            $t +=$total;
            if ($total == 0) break;

            foreach ($payok as $one) {
                $gameid = $one['gameid'];
                $regagent = $one['regagent'];
                if (!empty($gameid) && !empty($regagent)) {
                    $point = getAgentPoint($gameid, $regagent);
                    M('pay_ok', 'cy_')->where(['id' => $one['id']])->save([
                        'point' => $point,
                        'agent_amount' => ($one['amount'] * $point / 100),
                    ]);
                    $i++;
                } else {
                    $j++;
                }
            }

            // 停留500毫秒
            usleep(500);
        }

        echo "总数:".$t."<br>";
        echo "更新成功数:".$i."<br>";
        echo "不用更新的数:".$j."<br>";
    }

猜你喜欢

转载自blog.csdn.net/mengzuchao/article/details/80770990
今日推荐