php 操作mysql 把逗号隔开的数据拆分成多条数据并批量插入到数据表中

<?php
/**
 * Created by PhpStorm.
 * User: David
 * Date: 2018/9/5
 * Time: 16:14
 */

/** 
    *select * from order_info201808 limit 1;(order_sn)
    *select * from lf_pos_indepot201808 limit 1;(externOrderKey)
    *select * from pandora_order_log201808 limit 1;(tid)
    *订单付款时间 order_info201808.pay_time
    *推送LF时间 pandora_order_log201808.interface_time
    *订单发货时间 lf_pos_indepot201808.effectiveDate
**/


*
header("Content-type:text/html;charset=utf8");
//数据同步脚本方便数据库表的增删改查
class DATA_TB{
    public function __construct(){
        $this->db = new mysqli('xxx.xxx.xx','user','pwd','dbname');
        if(mysqli_connect_errno()){
            echo '数据库连接错误,错误信息:'.mysqli_connect_error();
            exit();
        }
//        set_time_limit(0);
//        ini_set("max_execution_time", "200000");
//        $this->db->set_charset('utf8');
    }
    public function to_array($sql){
        $result = $this->db->query($sql);
        while ($row = $result->fetch_assoc()){
            $res[] = $row;
        }
        return $res;
    }
    //下面方法可根据需求自行修改。
    public function tb_data(){
        $sql = ' select interface_time,tid from pandora_order_log201808'; #查询interface_time,tid
        $result = $this->to_array($sql);

//        $query = $this->db->query("select count(id) from pandora_order_log201808 "); #总条数
//        $row = $query->fetch_row();
//        $count = $row[0];  # 总条数
//        print_r( $count);exit;
//        $tid_arr = array();

//        echo "<pre>";
//        print_r($result);

        foreach($result as $k=>$v){
            foreach(explode(',',rtrim($v['tid'],',')) as $kk=>$vv){
                $tid_arr[$k][$kk]['tid'] = $vv;
                $tid_arr[$k][$kk]['interface_time'] = $v['interface_time'];
            }
        }
//        echo "<pre>";
        print_r('终止insert sql 数据');exit;
        $str = '';
        $i = 0;
        foreach ($tid_arr as $k2 =>$v2) {
            $i ++;
            foreach($v2  as $k3=>$v3){
                $str .= "( \"".$v3['tid']."\",\"".$v3['interface_time']."\"),";
            }
            if($i % 1000 ==0){
                $sstr = rtrim($str,',');
                $insert_sql = 'insert into test02 (order_sn,interface_time) values '.$sstr;
                $this->db->query($insert_sql);
                echo $i;
                $str = '';
            }
        }
//        $sstr = rtrim($str,',');
        if($str){
            $sstr = rtrim($str,',');
            $insert_sql = 'insert into test02 (order_sn,interface_time) values '.$sstr;
            $this->db->query($insert_sql);
        }

        $this->db->close();
//       end

    }

}
$obj = new DATA_TB();
$obj->tb_data();
?>

猜你喜欢

转载自blog.csdn.net/yangpit/article/details/82494503