PHP如何将多维数组中的数据批量插入数据库?
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如何将多维数组中的数据批量插入数据库?的更多相关文章
- SqlBulkCopy将DataTable中的数据批量插入数据库中
#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...
- 多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中【我】
多线程查询数据,将结果存入到redis中,最后批量从redis中取数据批量插入数据库中 package com.xxx.xx.reve.service; import java.util.ArrayL ...
- list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...
- C语言:将带头节点的单向链表结点域中的数据从小到大排序。-求出单向链表结点(不包括头节点)数据域中的最大值。-将M*N的二维数组中的数据,按行依次放入一维数组,
//函数fun功能是将带头节点的单向链表结点域中的数据从小到大排序. //相当于数组的冒泡排序. #include <stdio.h> #include <stdlib.h> ...
- 将Excle中的数据批量导入数据库
namespace 将Excle中的数据批量导入数据库{ class Program { static void Main(string[] args) { S ...
- SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)
1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地 ...
- jQuery写省级联动列表,创造二维数组,以及如何存/调用二维数组中的数据
jQuery写省级联动列表,创造二维数组来存放数据,然后通过each来遍历调用,通过creatTxtNode创建文本节点,通过createElement创建标签option,在通过append将文本写 ...
- MySQL中load data infile将文件中的数据批量导入数据库
有时候我们需要将文件中的数据直接导入到数据库中,那么我们就可以使用load data infile,下面具体介绍使用方法. dao中的方法 @Autowired private JdbcTemplat ...
- 将Excel中的数据批量导入数据库表
private boolean import_to_database(String excel_path) throws BiffException, IOException, HsException ...
随机推荐
- 奶牛易物-Alpha版本测试报告
1.在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? a. 修复的bug: 1.mapper接口与mapper.xml文件绑定的问题; 2..配置逆向工程的配置文件的问题; 3.在编码 ...
- Linux实战教学笔记55:开源虚拟化KVM(三)管理虚拟网络
六,管理虚拟网络 [x] Linux网桥基本概念 [x] qemu-kvm支持的网络 [x] 向虚拟机添加虚拟网络连接 [x] 基于NAT的虚拟网络 [x] 基于网桥的虚拟网络 [x] 用户自定义的隔 ...
- centos7 安装mysql5.6.32
1. 检查是否存在旧的mysql,执行: rpm -qa|grep -i mysql PS:若存在旧mysql,删除查询到的旧mysql,执行: rpm -e --nodeps XXXX ...
- 小程序开发运营必看:微信小程序平台运营规范
一.原则及相关说明 微信最核心的价值,就是连接——提供一对一.一对多和多对多的连接方式,从而实现人与人.人与智能终端.人与社交化娱乐.人与硬件设备的连接,同时连接服务.资讯.商业. 微信团队一 ...
- linux系统如何更改文件权限
一. 更改文件9个属性:chmod 用这个命令修改文件属性有两种方式:数字或者符号 1. 数字类型改变文件权限 chmod (1)类unix系统的文件有9个属性分别是owner/group/other ...
- ansible的ad-hoc模式
一.什么是ad-hoc模式 ansible中有两种模式,分别是ad-hoc模式和playbook模式 ad-hoc简而言之,就是"临时命令" 二.ad-hoc模式使用的场景 场景一 ...
- 一张图5分钟熟悉MarkDown的基本语法
看到zealer上面有介绍MarkDown的,以前在老罗的发布会也听说过,说锤子便签支持MarkDown,但是不知道有什么用,现在来看看,确实不错. MarkDown的好处是让你可以专注于写字本身,而 ...
- windows下怎么安装protobuf for python
首先从google上下载protobuf-3.0.0.zip和protoc-3.0.0-win32.zip,然后把protoc-3.0.0-win32.zip里的protoc.exe放到protobu ...
- Openssl rsa命令
一.简介 Rsa命令用于处理RSA密钥.格式转换和打印信息 二.语法 openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in fil ...
- 数字图像处理:基于MATLAB的车牌识别项目 标签: 图像处理matlab算法 2017-06-24 09:17 98人阅读 评论(0)
学过了数字图像处理,就进行一个综合性强的小项目来巩固一下知识吧.前阵子编写调试了一套基于MATLAB的车牌识别的项目的代码.今天又重新改进了一下代码,识别的效果好一点了,也精简了一些代码.这里没有使用 ...