php中如何执行批量插入数据到mysql
迷茫
迷茫 2017-04-10 15:30:12
[PHP讨论组]
$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);

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
怪我咯

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

php$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, ',');
迷茫

对,就是这样的。

sqlINSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....),(值1, 值2,....),(值1, 值2,....)

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号