PHP将多维数组中的数据批量插入到数据库中,顾名思义,需要用循环来插入。

1.循环insert into 语句,逐渐查询

 <?php
/* www.qSyz.net */
@mysql_connect('localhost','root') or exit('Failed to connect to MySQL server.');
mysql_select_db('mysql');
//$a是二维数组中的数据
$a = array(
=> array(
'id' => ,
'order' => 'xxxx'
),
=> array(
'id' => ,
'order' => 'xxxx'
)
);
foreach($a as $ac){
$q = mysql_query("SELECT 1 FROM `表名` WHERE `order`='{$ac['order']}' LIMIT");
if(mysql_num_rows($q)===){
mysql_query("INSERT INTO `表名` (`id`,`order`) VALUES('{$ac['id']}','{$ac['order']}')");
}
}
/* 当然,为了效率起见,应该考虑一次性插入多条数据,而不是每条数据执行一次MySQL查询. 那种写法要稍微复杂一点. */
?>

如果数据量非常大的话,重复执行insert 语句显然不适合

 <?php
$con = mysql_connect('localhost','root','root'); if(!con){
die('Could not connect: '.mysql_error());
}
mysql_select_db('mydatabase',$con);
$arr = array(array('orderAmount'=>'52.9','orderCode'=>'130511RJQM1G','orderCreateTime'=>'2013-05-11 17:10:35'),array('orderAmount'=>'52.9','orderCode'=>'130511RJQM1G','orderCreateTime'=>'2013-05-11 17:11:16'));
$valueStr = '';
foreach($arr as $v){
$valueStr .= "('',".$v['orderAmount'].",'".$v['orderCode']."','".$v['orderCreateTime']."'),";
}
$valueStr = substr($valueStr,,strlen($valueStr)-); $insertSql = "INSERT into `order`(id,orderAmount,orderCode,orderCreateTime) values".$valueStr; mysql_query($insertSql); ?>

如果 需要判断数据库中已经存在数据时 不需要插入,可以在数据库字段中给定唯一,这样就不需要进行判断是否存在,只需要判断是否插入成功了。

 for($i=;$i<count($arr);$I++){
$re=$db ->insert($arr[$i]);
if(!$re) continue;
}

以上还有一种解决方案,就是采用 insert ignore into 语句进行查询  http://blog.chinaunix.net/uid-20648927-id-1907272.html

PHP如何将多维数组中的数据批量插入数据库?的更多相关文章

  1. SqlBulkCopy将DataTable中的数据批量插入数据库中

    #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...

  2. 多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中【我】

    多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中 package com.xxx.xx.reve.service; import java.util.ArrayL ...

  3. list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库

    /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...

  4. C语言:将带头节点的单向链表结点域中的数据从小到大排序。-求出单向链表结点(不包括头节点)数据域中的最大值。-将M*N的二维数组中的数据,按行依次放入一维数组,

    //函数fun功能是将带头节点的单向链表结点域中的数据从小到大排序. //相当于数组的冒泡排序. #include <stdio.h> #include <stdlib.h> ...

  5. 将Excle中的数据批量导入数据库

    namespace 将Excle中的数据批量导入数据库{    class Program    {        static void Main(string[] args)        { S ...

  6. SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)

    1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地 ...

  7. jQuery写省级联动列表,创造二维数组,以及如何存/调用二维数组中的数据

    jQuery写省级联动列表,创造二维数组来存放数据,然后通过each来遍历调用,通过creatTxtNode创建文本节点,通过createElement创建标签option,在通过append将文本写 ...

  8. MySQL中load data infile将文件中的数据批量导入数据库

    有时候我们需要将文件中的数据直接导入到数据库中,那么我们就可以使用load data infile,下面具体介绍使用方法. dao中的方法 @Autowired private JdbcTemplat ...

  9. 将Excel中的数据批量导入数据库表

    private boolean import_to_database(String excel_path) throws BiffException, IOException, HsException ...

随机推荐

  1. centos7 vnc server

    yum -y install vnc *vnc-server* vncserver vncserver :2 vncserver -geometry 1900x1024 =============== ...

  2. UICamera

    [UICamera] UICamera是一个命名不太好的组件.实际上,它的名字某种原因只是为了保持向后兼容.UICamera脚本实际做的事是发送NGUI事件给所有被它所附加的摄像机所看见的对象.除此之 ...

  3. Kafka介绍及集群搭建

    简介 Kafka是一个开源的,分布式的,高吞吐量的消息系统.随着Kafka的版本迭代,日趋成熟.大家对它的使用也逐步从日志系统衍生到其他关键业务领域.特别是其超高吞吐量的特性,在互联网领域,使用越来越 ...

  4. java基础之抽象类和接口的区别

    抽象类和接口的区别 A:成员区别 抽象类: 成员变量:可以是变量,也可以是常量 构造方法:有 成员方法:可以是抽象方法,也可以是非抽象方法 接口: 成员变量:只能是静态常量(不写修饰符,默认是 sta ...

  5. Android开发实战之底部Dialog弹出效果

    在Android开发中,有很多情况下我们需要使用到对话框,遗憾的是,安卓自带的对话框样式不能满足我们实际的需要,所以往往需要我们自定义对话框,具体做法:写一个对话框继承自Dialog实现他的一个构造方 ...

  6. copy&mutableCopy 浅拷贝(shallow copy)深拷贝 (deep copy)

    写在前面 其实看了这么多,总结一个结论: 拷贝的初衷的目的就是为了:修改原来的对象不能影响到拷贝出来得对象 && 修改拷贝出来的对象也不能影响到原来的对象 所以,如果原来对象就是imm ...

  7. 关于神经网络中的padding

    参考:https://www.cnblogs.com/willnote/p/6746668.html

  8. RCC—使用 HSE/HIS 配置时钟

    RCC :reset clock control  复位和时钟控制器:特别是要着重理解时钟树,理解了时钟树,F429 的一切时钟的来龙去脉都会了如指掌. STM32F4系列有5个时钟源: LSIRC( ...

  9. 开发工具Visual Studio使用相关知识和经验的碎片化记录

    开发工具Visual Studio使用相关知识和经验的碎片化记录 1.Visual Studio提示"无法启动IIS Express Web服务器"的解决方法 有时,在使用Visu ...

  10. Sql的行列转换

    创建表scores 一.传统的行列转换 纵表转横表 我们要转成的横表是这样子的: pivot是sql server 2005 提供的运算符,所以只要数据库在05版本以上的都可以使用.主要用于行和列的转 ...