浅析THINKPHP的addAll支持的最大数据量
Thinkphp中的Model操作有两个方法:add()和addAll
$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);
$dataList[] = array('name'=>'thinkphp','email'=>'thinkphp@gamil.com');
$dataList[] = array('name'=>'onethink','email'=>'onethink@gamil.com');
$User->addAll($dataList);
addAll方法可以做到批量添加数据的功能,也就是MySQL的这种用法:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
数据量很多情况下尽量选择批量插入而不是循环逐条插入,否则你的数据库会吃不住挂掉。
不过如果你想当然的将所有数据全部存入一个数组并进行addAll也同样会面临挂掉的情况,这是为什么呢?
原因就是mysql中max_allowed_packet变量的配置限制了上传sql语句的长度,在mysql配置中将他配置大一点就行了
max_allowed_packet = 100M
同时在插入数据时也做好批量插入的长度限制,毕竟你不知道什么时候数据会变成百万级别的。
以上就是本文的全部内容了,希望小伙伴们能够喜欢。
相关推荐
-
thinkPHP批量删除的实现方法分析
本文实例讲述了thinkPHP批量删除的实现方法.分享给大家供大家参考,具体如下: html: <li> <a class="delete" href="__URL__/deleteSelected/navTabId/__MODULE__" target="selectedTodo" posttype="string" calback="navTabAjaxMenu" rel='ids'
-
thinkphp3.2.3版本的数据库增删改查实现代码
框架thinkphp 版本:3.2.3 内容:数据库操作 1. 多表查找一条数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->find(); 2.查找一条数据 M('a表')->where('条件')->find(); 3.多表查询所有数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->select(); 4.查询
-
ThinkPHP实现批量删除数据的代码实例
ThinkPHP实现批量删除数据原理很简单,只需在模板页面里面写上<input name='id[]' type='checkbox' value='{$vo.id}' class="noborder">这样传过来就是一个数组,action的删除函数del()如下: /** **删除函数支持删除多条和一个 **/ function del(){ //dump($_GET['id']); //$name = strtolower($_GET['_URL_'][0]); //获
-
ThinkPHP写数组插入与获取最新插入数据ID实例
本文实例讲述了thinkphp写数组插入与获取最新插入数据ID的实现方法.分享给大家供大家参考.具体方法分析如下: 该实例讲述了thinkphp怎么自己写数组插入,此处是以注册用户为例. 具体实现代码如下: 复制代码 代码如下: public function insert2(){ header("Content-Type:text/html; charset=utf-8"); $Dao = M("User"); // 构建写入的数据数组 $data[&quo
-
基于thinkPHP类的插入数据库操作功能示例
本文实例讲述了基于thinkPHP类的插入数据库操作功能.分享给大家供大家参考,具体如下: 基于TP类的插入数据库操作 /************************** * 插入互动专家的数据 * * @param object $model 实例化的模型 * @param array $Model 获取到的专家数据 * @param int $result 插入成功后返回的id * @date 2016/02/19 * @write zss ***********************
-
ThinkPHP3.2框架使用addAll()批量插入数据的方法
本文实例讲述了ThinkPHP3.2框架使用addAll()批量插入数据的方法.分享给大家供大家参考,具体如下: thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. // 批量添加数据 (only MySQL) $user = M('user'); //array('表字段'=>'值') $dataList[] = array('name'=>'thinkphp','email'=>'thinkphp@gamil.com'); $dataList[] =
-
Thinkphp批量更新数据的方法汇总
以下小编给大家列出了三种实现thinkphp批量更新数据的方法,写的不好还请见谅,有意见欢迎提出,共同学习进步! 方法一: //批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式 function batch_update($table_name='',$data=array(),$field=''){ if(!$table_name||!$data||!$field){ return false; }else{ $sql='UPDATE '.$table_name
-
thinkPHP数据库增删改查操作方法实例详解
本文实例讲述了thinkPHP数据库增删改查操作方法.分享给大家供大家参考,具体如下: thinkphp对数据库增删改查进行了封装操作,使得使用更加方便,但是不一定灵活. 可以用封装的用,需要写sql,可以执行sql. 1.原始的 $Model = new Model(); // 实例化一个model对象 没有对应任何数据表 $insert_sql = "INSERT INTO sh_wxuser_collection (user_id,store_id,good_id,addtime) VAL
-
thinkPHP数据查询常用方法总结【select,find,getField,query】
本文实例讲述了thinkPHP数据查询常用方法.分享给大家供大家参考,具体如下: thinkphp已经封装好了常用的查询方法,且都比较实用,对于不常用的查询框架也保留了原始查询方法query. $Model = new Model() // 实例化一个model对象 没有对应任何数据表 $Model->query("select * from think_user where status=1"); 如果刚学Thinkphp对框架不太了解可以用query($sql) 和 exec
-
基于ThinkPHP实现批量删除
本文实例分析了基于ThinkPHP实现批量删除的代码实例,分享给大家供大家参考,具体如下: 废话不多说,先上效果图: HTML布局(基于bootstrap) <div class="panel panel-default"> <div class="panel-heading"> 留言列表 <a class="btn btn-xs btn-default pull-right" href="javascri
-
thinkphp框架实现删除和批量删除
本文实例讲一下如何用thinkphp实现数据的删除和批量删除吧. 预期效果图: 原谅博主对照片的处理是如此的草率吧... 仍然是 通过MVC模式进行拆分: 首先是视图部分: <form action="__MODULE__/Admin/User/del" method="get"> <tr> <th width="4%"><input type="checkbox" name=&quo
随机推荐
- Linux环境下mysql5.7.13安装教程
- 将WMI中的DateTime类型转换成VBS时间的函数代码
- iOS 点击推送消息跳到应用指定页面的实例
- 详解Asp.Net MVC——控制器与动作(Controller And Action)
- 微信支付PHP SDK之微信公众号支付代码详解
- asp.net实现word文档在线预览功能的方法
- 用Eclipse搭建Android开发环境并创建第一个Android项目(eclipse+android sdk)
- mysql设置远程访问数据库的多种方法
- MySQL5.7的安装与配置详细操作步骤
- Python基于scapy实现修改IP发送请求的方法示例
- Ajax轮询请求状态(微信公众号带参数二维码登录网站)
- Python松散正则表达式用法分析
- IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
- Apache中配置支持CORS(跨域资源共享)实例
- php 从数据库提取二进制图片的处理代码
- 详解TensorFlow在windows上安装与简单示例
- 记录一次开发微信网页分享的步骤
- python的pytest框架之命令行参数详解(下)
- 使用apifm-wxapi模块中的问题及解决方法
- C# 编译生成dll文件供程序调用的两种方法