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. HttpClient由Client客户端上传File文件流至Server服务端

    客户端方法 public static void main(String[] args) { File file=new File("E:\\lucene\\rev\\全年平台受理量.doc ...

  2. siebel简介

    定义公司架构.描述S应用架构.安装应用.配置S.自动化的业务规则.数据整合.不同环境如何整合. 一.介绍CRM 销售.Callcenter等 允许管理客户和联系人. 二.Using the web c ...

  3. 使用vue-cli创建一个vue项目

    安装vue-cli npm install -g @vue/cli 1, 使用vue创建一个项目 vue create luffy 2, 安装所需的插件 npm install vue-router ...

  4. 142. Linked List Cycle II (List; Two-Pointers)

    Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note ...

  5. eclipse插件jd-eclipse的使用

    https://blog.csdn.net/u013215289/article/details/51275527

  6. 怎样用jQuery拿到select中被选中的option的值

    1.首先要保证select中每一个option标签都有value属性: 2.jquery的写法 1 $('#sele').val()//这里假设select的id是sele,这样可以获取当前选中的op ...

  7. highchart 曲线图

    $(function() { Highcharts.setOptions({ global: { useUTC: false } }); var chart = new Highcharts.Char ...

  8. 如何启动jdeveloper中集成的weblogic

    1>运行jdeveloper,打开运行日志,入下图,日志最开始的红框部分就是打开weblogic的命令,将此命令复制出来执行即可打开weblogic 程序员的基础教程:菜鸟程序员

  9. Python之FTP传输-乾颐堂

    访问FTP,无非两件事情:upload和download,最近在项目中需要从ftp下载大量文件,然后我就试着去实验自己的ftp操作类,如下(PS:此段有问题,别复制使用,可以参考去试验自己的ftp类! ...

  10. 在git bash中使用命令行调用tortoisegit提交代码或查看日志

    Tortoisegit commit / show log命令行 TortoiseGitProc.exe /command:commit TortoiseGitProc.exe /command:lo ...