`

PHP中批量插入多条记录到数据表

    博客分类:
  • PHP
 
阅读更多

 

 

class test {
    /**
     * 获取插入的数据SQL
     *
     * @author wengxianhu
     * @created to 2013-05-27
     * @param unknown $data
     * @return multitype:
     */
    public function _getInsertInfo($data)
    {
        reset($data);
        $fields = array();
        $values = array();
        $length = 1;
        if (key($data) === 0 && is_array($data[0]))
        {
            $length = count($data);
            foreach ($data as $_k => $_v)
            {
                foreach ($_v as $_f => $_fv)
                {
                    $is_array = is_array($_fv);
                    ($_k == 0 && !$is_array) && $fields[] = '`'.$_f.'`';
                    !$is_array && $values[$_k][] = "'". addslashes(stripslashes($_fv)) . "'";
                }
                $values[$_k] = '(' . implode(',', $values[$_k]) . ')';
            }
        }
        else
        {
            foreach ($data as $_k => $_v)
            {
                $is_array = is_array($_v);
                !$is_array && $fields[] = '`'.$_k.'`';
                !$is_array && $values[] = "'" . addslashes(stripslashes($_v)) . "'";
            }
            $values = '(' . implode(',', $values) . ')';
        }
        $fields = '(' . implode(',', $fields) . ')';
        is_array($values) && $values = implode(',', $values);
        return compact('fields', 'values', 'length');
    }

    /**
     * 批量插入数据
     *
     * @author wengxianhu
     * @created to 2013-05-27
     * @param unknown $set
     * @param string $table 表名
     */
    public function insertAll($set, $table)
    {
        $insert_info = $this->_getInsertInfo($set);
        $sql = "INSERT INTO {$table} {$insert_info['fields']} VALUES{$insert_info['values']}";
        $this->query($sql,'execute');//这里根据当前使用的系统修改
    }
}
$goods = array(
    array('goods_id'=>2000,'cate_id'=>100,'name'=>'godos1'),
    array('goods_id'=>2001,'cate_id'=>101,'name'=>'godos2'),
    array('goods_id'=>2002,'cate_id'=>102,'name'=>'godos3'),
);
// $goods = array('goods_id'=>2000,'cate_id'=>100,'name'=>'godos1');
$a = new test();
$a->insertAll($goods, 'ecm_goods');

 

分享到:
评论

相关推荐

    php批量添加数据与批量更新数据的实现方法

    设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count()函数来获取数组中元素...

    PHP程序开发范例宝典III

    实例227 使用聚集函数First或Last求数据表中第一条或最后一条记录 352 8.10 多表查询 354 实例228 使用select语句进行多表查询 354 实例229 使用表的别名 355 实例230 合并多个结果集 356 8.11 嵌套查询...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例077 跳过数据输出中指定的记录 111 实例078 执行指定次数的循环 112 2.7 自定义函数 113 实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例077 跳过数据输出中指定的记录 111 实例078 执行指定次数的循环 112 2.7 自定义函数 113 实例079 自定义函数截取中文字符串 113 实例080 公告标题的截取 114 实例081 论坛内容的简短输出 116 实例082 自定义函数...

    MySQL5 权威指南第3版中文版_part1

     10.11 对前n条或后n条记录进行处理  10.12 以随机方式选择数据记录  10.13 全文索引  10.14 锁定  10.15 事务  第11章 访问权限与信息安全  11.1 简介  11.2 急救  11.3 访问控制机制的内部工作原理  ...

    PHP168建站系统

    备份数据库的界面增加每个数据表的功能介绍,让大家清楚知道哪个数据表是做什么用的. 29.增强完善后台在线修改模板风格功能,对常用的模板都做了功能解释说明.方便大家修改对应的模板 等等.... 官方网站:...

    MySQL 5权威指南(第3版) 中文版 下载地址

     10.11 对前n条或后n条记录进行处理  10.12 以随机方式选择数据记录  10.13 全文索引  10.14 锁定  10.15 事务  第11章 访问权限与信息安全  11.1 简介  11.2 急救  11.3 访问控制机制的内部工作...

    PHP168整站|PHP168整站 v4.0下载_源码下载

    当然也可以指定备份哪些数据表的数据。 2.强大的分卷备份功能,可以自由切取每卷文件的大小。 3.可以指定每次读取几条数据,数值大,备份快,数值小,有利于一些虚拟机空间的备份成功率,不被中断。 4.可以指定备份...

    RGCMS睿谷信息管理系统-PHP

    1.11更新时间:2019-12-10更新内容修复插件在某些环境下不解析插件标签的bug修复系统在安装时,数据库表丢失以及数据不全的bugHOME模块增加2种语言包(zh、en)新增简易编辑器字段新增多内容字段以及多内容调用标签rg:...

    Collector资料收集管理器

    本地导入速度一流,比其它同类的软件都快很多(可以在网上找一个同类软件导入过万条记录比较)。 是一个非常实用的电子书制作工具;可以把数据库文件转换成可执行文件(*.exe),也可以制作成CHM文件。 您可以给书籍...

    网软志成分类信息网站系统.net官方商业版

    通过分站发展壮大分类信息平台,我们公司凭着雄厚的技术力量,周到的售后服务,国外公司也很多选择使用我们公司开发的分类信息网站系统正式版,以最少的投资建立了分类信息网站,收到良好的经济效益,赚到很多的钱,地方...

Global site tag (gtag.js) - Google Analytics