YII框架批量插入数据的方法


Posted in PHP onMarch 18, 2017

本文实例讲述了YII框架批量插入数据的方法。分享给大家供大家参考,具体如下:

public function insertSeveral($table, $array_columns)
{
 $sql = '';
 $params = array();
 $i = 0;
 foreach ($array_columns as $columns) {
  $names = array();
  $placeholders = array();
  foreach ($columns as $name => $value) {
   if (!$i) {
    $names[] = $this->_connection->quoteColumnName($name);
   }
   if ($value instanceof CDbExpression) {
    $placeholders[] = $value->expression;
    foreach ($value->params as $n => $v)
     $params[$n] = $v;
   } else {
    $placeholders[] = ':' . $name . $i;
    $params[':' . $name . $i] = $value;
   }
  }
  if (!$i) {
   $sql = 'INSERT INTO ' . $this->_connection->quoteTableName($table)
    . ' (' . implode(', ', $names) . ') VALUES ('
    . implode(', ', $placeholders) . ')';
  } else {
   $sql .= ',(' . implode(', ', $placeholders) . ')';
  }
  $i++;
 }
 return $this->setText($sql)->execute($params);
}
$rows = array(
   array('id' => 1, 'name' => 'John'),
   array('id' => 2, 'name' => 'Mark')
);
$command = Yii::app()->db->createCommand();
$command->insertSeveral('users', $rows);

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
1.PHP简介
Oct 09 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
PHP 透明水印生成代码
Aug 27 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
Jul 29 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 #PHP
thinkPHP5.0框架模块设计详解
Mar 18 #PHP
thinkPHP5.0框架命名空间详解
Mar 18 #PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 #PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 #PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 #PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 #PHP
You might like
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
Python的Flask框架与数据库连接的教程
2015/04/20 Python
Python二分法搜索算法实例分析
2015/05/11 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
python验证身份证信息实例代码
2019/05/06 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
飞利浦美国官网:Philips美国
2020/02/28 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
食堂个人先进事迹
2014/01/22 职场文书
应届毕业生自荐信
2014/05/28 职场文书
授权委托书(完整版)
2014/09/10 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
vue实力踩坑之push当前页无效
2022/04/10 Vue.js