php中如何执行批量插入数据到mysql

WBOY
Release: 2016-06-06 20:36:14
Original
1477 people have browsed it

<code>$arr = Array
(
    [0] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1427940803
            [pv_total] => 0.00
        )

    [1] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428477888
            [pv_total] => 0.00
        )

    [2] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428475892
            [pv_total] => 0.00
        )

    [3] => Array
        (
            [u_id] => 2
            [userid] => feng001
            [status] => 3
            [confirm_time] => 1428482901
            [pv_total] => 0.00
        )

    [4] => Array
        (
            [u_id] => 2
            [userid] => feng001
            [status] => 3
            [confirm_time] => 1428483116
            [pv_total] => 0.00
        )

    [5] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428483542
            [pv_total] => 20.00
        )

    [6] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428475881
            [pv_total] => 40.00
        )

    [7] => Array
        (
            [u_id] => 5
            [userid] => feng005
            [status] => 3
            [confirm_time] => 1428474458
            [pv_total] => 100.00
        )

    [8] => Array
        (
            [u_id] => 4
            [userid] => feng004
            [status] => 3
            [confirm_time] => 1428475275
            [pv_total] => 100.00
        )

    [9] => Array
        (
            [u_id] => 3
            [userid] => feng002
            [status] => 3
            [confirm_time] => 1428475478
            [pv_total] => 100.00
        )

    [10] => Array
        (
            [u_id] => 2
            [userid] => feng001
            [status] => 3
            [confirm_time] => 1428475622
            [pv_total] => 100.00
        )

    [11] => Array
        (
            [u_id] => 6
            [userid] => feng006
            [status] => 3
            [confirm_time] => 1428479200
            [pv_total] => 100.00
        )

    [12] => Array
        (
            [u_id] => 6
            [userid] => feng006
            [status] => 3
            [confirm_time] => 1428483519
            [pv_total] => 40.00
        )

);
$count = count($res);
     $sql = "insert into users(periods,uid,username,pv) VALUES ";
           foreach($res as $key=>$vo){
                if($key == $count-1){
                    $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total'].")";
                }else{
                    $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total']."),";
                }
            };
            M()->query($sql);
</code>
Copy after login
Copy after login

这样能行吗?没怎么用过批量操作数据库,请指导。

回复内容:

<code>$arr = Array
(
    [0] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1427940803
            [pv_total] => 0.00
        )

    [1] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428477888
            [pv_total] => 0.00
        )

    [2] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428475892
            [pv_total] => 0.00
        )

    [3] => Array
        (
            [u_id] => 2
            [userid] => feng001
            [status] => 3
            [confirm_time] => 1428482901
            [pv_total] => 0.00
        )

    [4] => Array
        (
            [u_id] => 2
            [userid] => feng001
            [status] => 3
            [confirm_time] => 1428483116
            [pv_total] => 0.00
        )

    [5] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428483542
            [pv_total] => 20.00
        )

    [6] => Array
        (
            [u_id] => 1
            [userid] => feng003
            [status] => 3
            [confirm_time] => 1428475881
            [pv_total] => 40.00
        )

    [7] => Array
        (
            [u_id] => 5
            [userid] => feng005
            [status] => 3
            [confirm_time] => 1428474458
            [pv_total] => 100.00
        )

    [8] => Array
        (
            [u_id] => 4
            [userid] => feng004
            [status] => 3
            [confirm_time] => 1428475275
            [pv_total] => 100.00
        )

    [9] => Array
        (
            [u_id] => 3
            [userid] => feng002
            [status] => 3
            [confirm_time] => 1428475478
            [pv_total] => 100.00
        )

    [10] => Array
        (
            [u_id] => 2
            [userid] => feng001
            [status] => 3
            [confirm_time] => 1428475622
            [pv_total] => 100.00
        )

    [11] => Array
        (
            [u_id] => 6
            [userid] => feng006
            [status] => 3
            [confirm_time] => 1428479200
            [pv_total] => 100.00
        )

    [12] => Array
        (
            [u_id] => 6
            [userid] => feng006
            [status] => 3
            [confirm_time] => 1428483519
            [pv_total] => 40.00
        )

);
$count = count($res);
     $sql = "insert into users(periods,uid,username,pv) VALUES ";
           foreach($res as $key=>$vo){
                if($key == $count-1){
                    $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total'].")";
                }else{
                    $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total']."),";
                }
            };
            M()->query($sql);
</code>
Copy after login
Copy after login

这样能行吗?没怎么用过批量操作数据库,请指导。

###代码大概像这样吧,手打的,没有测试###

<code>php</code><code>$sql = 'INSERT INTO TABLE (`u_uid`, `userid`,`status`,`confirm_time`,`pv_total`) VALUES';
foreach($arr as $k => $item) {
    $sql .= '(' . $item['u_uid'] . ',' . $item['userid'] . ',' . $item['status'] . ',' . $item['confirm_time'] . ',' . $item['pv_total'] . '),';
}
$sql = rtrim($sql, ',');
</code>
Copy after login

对,就是这样的。

<code>sql</code><code>INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....),(值1, 值2,....),(值1, 值2,....)
</code>
Copy after login

其实编程这玩意儿,你试试看就知道可不可行了。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!