`

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');

 

分享到:
评论

相关推荐

    ThinkPHP 批量添加数据

    这个方法接收一个包含多条记录的数组,并一次性插入数据库。示例如下: ```php $result = $userModel->insertAll($data); ``` 这里的`$result`会返回受影响的行数,如果插入成功,它应该是数据的长度。 4. **...

    批量添加修改多条数据.rar

    首先,批量添加数据是指一次向数据库中插入多条记录,而批量修改则是在已有的数据基础上进行更新。在tp5框架中,`saveAll()`方法是这两个操作的核心工具。这个方法允许我们传入一个包含多个数据对象(或数组)的集合...

    用一条mysql语句插入多条数据

    综上所述,当需要向同一张表中插入多条记录时,使用一条MySQL语句进行批量插入是推荐的最佳实践。它不仅能显著提高插入速度,还能简化代码并增强数据一致性。在编写涉及大量数据库操作的程序时,应优先考虑这种优化...

    php往mysql中批量插入数据实例教程

    例如,可以一次性插入多条记录: ```sql INSERT INTO user_info (name, age) VALUES ('name1', 18), ('name2', 19); ``` 在PHP中实现这一方法如下: ```php // 假设$arr 是包含大量数据的数组 $sql = "INSERT ...

    mysql批量更新多条记录的同一个字段为不同值的方法

    在MySQL中,批量更新多个记录的同一字段但设置不同的值是一项常见的操作,特别是在处理大量数据时。虽然MySQL没有内置的直接方法来实现这种批量更新,但可以通过一些巧妙的方式来达成目标。这里我们将深入探讨如何...

    codeigniter使用技巧批量插入数据实例方法分享

    我们使用 `insert_batch()` 方法进行批量插入,这个方法是CodeIgniter的Active Record类提供的,它允许我们在一次数据库操作中插入多条记录。 在循环中,每处理200条数据(或处理完所有数据),我们就会调用 `...

    codeigniter框架批量插入数据

    批量插入数据的基本思想是将多条记录作为一个数组传递给数据库的`insert_batch`方法,而不是一条一条地执行单独的插入语句。这减少了数据库交互次数,从而提高了整体性能。以下是一个优化后的批量插入示例: ```php...

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

    批量添加数据通常指的是将多条数据一次性插入到数据库中,这样可以有效减少数据库的交互次数,提高数据插入效率。在PHP中,可以使用SQL的INSERT INTO语句来完成这一操作。为了实现批量插入,可以在表单中设计相同的...

    Laravel实现批量更新多条数据

    然而,Laravel的标准库并没有提供直接的批量更新功能,特别是针对多条记录的情况。本文将详细介绍如何在Laravel中实现批量更新多条数据。 首先,我们需要了解MySQL中的`CASE...WHEN`语句。这是一种非常实用的SQL...

    Yii框架批量插入数据扩展类的简单实现方法

    Yii框架批量插入数据扩展类的实现旨在提高数据库操作效率,特别是在需要一次性处理大量数据时。在MySQL中,可以通过单个INSERT语句插入多行数据,这样可以减少与数据库的交互次数,从而提升性能。Yii框架提供了对...

    php CI框架插入一条或多条sql记录示例

    当需要向数据库表中插入多条记录时,我们可以使用`insert_batch()`方法。这个方法的工作原理和`insert()`类似,但它允许我们一次插入一个数组,数组中的每个元素又是一个代表一条记录的关联数组。 示例代码如下: ...

    ThinkPHP3.2框架使用addAll()批量插入数据的方法

    通过传递一个包含多条数据的数组,开发者可以一次性向数据库表中插入多条记录。这种方法特别适合在数据量较大或者需要同时插入多条数据时使用,相比于逐条插入,它可以显著提高数据插入的效率。 具体来说,使用...

    PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例

    最后,我们将学习如何使用PDO批量插入多条数据。这通常涉及到使用开始事务、执行一系列的INSERT语句,然后提交事务。以下代码演示了这个过程: ```php <?php $servername = "localhost"; $username = "username"; $...

    Yii2 批量插入、更新数据实例

    在Yii2框架中进行数据的批量插入和更新是一个常见的操作,尤其在处理大量数据时,能极大提升数据处理效率。 在Yii2中进行批量插入通常使用`batchInsert()`方法,而批量更新则通过模型的`updateAll()`或`...

    基于 thinkphp的一个 批量上传并 csv文件导入数据

    在ThinkPHP中,你可以创建一个Model类,该类对应于数据库中的表,然后使用`saveAll()`方法批量插入数据: ```php $importData = []; // 假设这是从CSV解析出来的数据 $Model = new \think\Model('TableName'); // ...

    执行一条sql语句update多条记录实现思路

    在SQL语言中,更新多条记录的字段值且每行记录的字段值各不相同时,通常有两种常用的方法。一种是使用CASE语句结合IF-THEN逻辑,另一种是利用INSERT语句的DUPLICATE KEY UPDATE特性。这两种方法都可以避免循环执行多...

Global site tag (gtag.js) - Google Analytics