您的位置:首页 > 编程语言 > PHP开发

php分批次批量插入数据

2016-04-28 17:46 716 查看
一、 php实现分批次批量插入

php在处理大批量mysql数据插入操作的时候,可以利用php字符串拼接或数组方式进行分批次插入,可以有效避免sql语句超出mySql 的max_allowed_packet限制。

1.字符串拼接方法

$sql = $sql_pre = "INSERT INTO term_pv_rev (TermId,impv,rev) VALUES ";

$i = 0;

foreach ($term as $key => $value)

{

    $i++;

    $sql .= "({$key},{$value['impv']},{$value['rev']}), ";

    if($i % 1000 == 0)

    {

        $objMysql->query(substr($sql,0,-1));

        $sql = $sql_pre;

    }    

}

if($sql != $sql_pre)

{

    $objMysql->query(substr($sql,0,-1));
}

2.数组方法

$sql = $sql_pre = "INSERT INTO term_pv_rev (TermId,impv,rev) VALUES ";

$insert_arr = array();

foreach ($term as $key => $value) 

{
$insert_arr[] = "({$key},{$value['impv']},{$value['rev']})";
if(sizeof($insert_arr)>=1000)
{
$sql = $sql.implode(',', $insert_arr);
$objMysql->query($sql);
$sql = $sql_pre;
$insert_arr = array();
}

}

if(sizeof($insert_arr)>=1000)

{
$sql = $sql.implode(',', $insert_arr);
$objMysql->query($sql);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql插入数据