久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Yii框架批量插入數(shù)據(jù)擴(kuò)展類的簡(jiǎn)單實(shí)現(xiàn)方法

這篇文章主要介紹了Yii框架批量插入數(shù)據(jù)擴(kuò)展類的簡(jiǎn)單實(shí)現(xiàn)方法,涉及Yii擴(kuò)展類及數(shù)據(jù)庫(kù)相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Yii框架批量插入數(shù)據(jù)擴(kuò)展類的簡(jiǎn)單實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:

MySQL INSERT語(yǔ)句允許插入多行數(shù)據(jù),如下所示:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

那么要實(shí)現(xiàn)批量插入,主要的任務(wù)就是按照列順序,把數(shù)據(jù)組裝成上述格式即可,可以使用sprintf和vsprintf函數(shù)來(lái)實(shí)現(xiàn)。

下面是一個(gè)實(shí)現(xiàn)批量插入的Yii擴(kuò)展類的簡(jiǎn)單示例(支持VARCHAR類型數(shù)據(jù)):

<?php
/**
 * class for sql batch insert
 */
class CDbBICommand extends CDbCommand{
  /** @var CActiveRecord $class */
  private $class;
  /** @var string $insert_tpl */
  private $insert_tpl = "insert into %s(%s) ";
  /** @var string $value_tpl */
  private $value_tpl = "(%s)";
  /** @var string $query */
  public $query;
  /** @var CDbColumnSchema[] $columns */
  private $columns;
  /** @var boolean $fresh */
  private $fresh;
  /** @param CActiveRecord $class
   * @param CDbConnection $db
   */
  public function __construct($class,$db){
   $this->class = $class;
   $this->createtpl();
   parent::_construct($db);
  }
  private function createtpl(){
   $this->fresh = true;
   $value_tpl = "";
   $columns_string = "";
   $this->columns = $this->class->getMetaData()->tableSchema->columns;
   $counter = 0;
   foreach($this->columns as $column){
    /** @var CDbColumnSchema $column */
    if($column->autoIncrement){
     $value_tpl .= "0";
    }else{
     $value_tpl .= "\"%s\"";
    }
    $columns_string .= $column->name;
    $counter ++;
    if($counter != sizeof($this->columns)){
     $columns_string .= ", ";
     $value_tpl .= ", ";
    }
   }
   $this->insert_tpl = sprintf($this->insert_tpl, $this->class->tableName(), $columns_string);
   $this->value_tpl = sprintf($this->value_tpl, $value_tpl);
  }
  /**
   * @param CActiveRecord $record
   */
  public function add($record){
   $values = array();
   $i = 0;
   foreach($this->columns as $column){
    if($column->autoIncrement){
     continue;
    }
    $values[$i] = $this->class->{$column->name};
    $i ++;
   }
   if(!$this->fresh){
    $this->query .= ",";
   }else{
    $this->query = "values";
   }
   $this->fresh = false;
   $this->query .= vsprintf($this->value_tpl, $values);
   return true;
  }
  public function execute(){
   $this->setText($this->insert_tpl." ".$this->query);
   return parent::execute();
  }
}

使用方法是通過(guò)add方法逐個(gè)加入數(shù)據(jù),然后調(diào)用execute執(zhí)行。

更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門(mén)及常用技巧總結(jié)》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《smarty模板入門(mén)基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。

【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了ThinkPHP實(shí)現(xiàn)轉(zhuǎn)換數(shù)據(jù)庫(kù)查詢結(jié)果數(shù)據(jù)到對(duì)應(yīng)類型的方法,涉及thinkPHP模型類操作及針對(duì)源碼文件的相關(guān)修改方法,需要的朋友可以參考下
本篇文章主要介紹了Laravel 批量更新多條數(shù)據(jù)的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
這篇文章主要介紹了Thinkphp5+PHPExcel實(shí)現(xiàn)批量上傳表格數(shù)據(jù)功能,需要的朋友可以參考下
這篇文章主要給大家介紹了關(guān)于Laravel中數(shù)據(jù)遷移與數(shù)據(jù)填充的相關(guān)資料,文中通過(guò)示例代碼給大家詳細(xì)介紹了實(shí)現(xiàn)的步驟,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友
下面小編就為大家?guī)?lái)一篇利用PHP訪問(wèn)數(shù)據(jù)庫(kù)_實(shí)現(xiàn)分頁(yè)功能與多條件查詢功能的示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
下面小編就為大家?guī)?lái)一篇PHP中關(guān)于PDO數(shù)據(jù)訪問(wèn)抽象層的功能操作實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
主站蜘蛛池模板: 黄免费看| 中文字幕av网 | 在线欧美小视频 | 亚洲自拍偷拍免费视频 | 美美女高清毛片视频免费观看 | 免费国产精品久久久久久 | 一级黄在线观看 | 久久亚洲一区二区 | 国产精品不卡一区二区三区 | 欧美成人免费在线视频 | 国产美女一区二区 | 中文字幕一区在线观看视频 | 亚洲国产二区 | 午夜精品一区二区三区在线播放 | 日本黄色高清视频 | 一区二区在线免费观看视频 | 中文一级片 | 激情一区二区三区 | 国产一级片免费在线观看 | 日韩精品在线观看一区二区 | 久久久九九 | 欧美激情精品久久久久久变态 | 91日韩 | 国产免费让你躁在线视频 | 天天玩天天干天天操 | 欧美国产精品久久久 | 日日摸天天添天天添破 | 一区二区中文 | 欧美日韩电影在线 | 欧美极品在线 | 91在线观看网址 | 免费精品一区 | 亚洲人在线观看视频 | 久久精品二区亚洲w码 | 欧美日本在线观看 | 草草草影院 | 精品国产成人 | 国产91在线视频 | 欧美性区| 在线国产一区 | 成人深夜福利网站 |