当前位置: 首页>>代码示例>>PHP>>正文


PHP SC_Query::extractOnlyColsOf方法代码示例

本文整理汇总了PHP中SC_Query::extractOnlyColsOf方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Query::extractOnlyColsOf方法的具体用法?PHP SC_Query::extractOnlyColsOf怎么用?PHP SC_Query::extractOnlyColsOf使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SC_Query的用法示例。


在下文中一共展示了SC_Query::extractOnlyColsOf方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: lfRegistProduct

 /**
  * 商品登録を行う.
  *
  * FIXME: 商品登録の実処理自体は、LC_Page_Admin_Products_Productと共通化して欲しい。
  *
  * @param SC_Query $objQuery
  *            SC_Queryインスタンス
  * @param string|integer $line
  *            処理中の行数
  * @return void
  */
 public function lfRegistProduct($objQuery, $line = '', &$objFormParam)
 {
     // 登録データ対象取得
     $arrList = $objFormParam->getDbArray();
     // 登録時間を生成(DBのCURRENT_TIMESTAMPだとcommitした際、全て同一の時間になってしまう)
     $arrList['update_date'] = $this->lfGetDbFormatTimeWithLine($line);
     // 商品登録情報を生成する。
     // 商品テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
     $sqlval = SC_Utils_Ex::sfArrayIntersectKeys($arrList, $this->arrProductColumn);
     // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
     $sqlval = $this->lfSetProductDefaultData($sqlval);
     GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE);
     $sqlval = $objQuery->extractOnlyColsOf($this->table, $sqlval);
     if ($sqlval[$this->id_column] != '') {
         // 同じidが存在すればupdate存在しなければinsert
         $where = $this->id_column . ' = ?';
         $product_exists = $objQuery->exists($this->table, $where, array($sqlval[$this->id_column]));
         if ($product_exists) {
             GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE);
             $objQuery->update($this->table, $sqlval, $where, array($sqlval[$this->id_column]));
         } else {
             $sqlval['create_date'] = $arrList['update_date'];
             // INSERTの実行
             GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE);
             $objQuery->insert($this->table, $sqlval);
             // シーケンスの調整
             $seq_count = $objQuery->currVal($this->seq_name);
             if ($seq_count < $sqlval[$this->id_column]) {
                 $objQuery->setVal($this->seq_name, $sqlval[$this->id_column] + 1);
             }
         }
         $product_id = $sqlval[$this->id_column];
     } else {
         // 新規登録
         $sqlval[$this->id_column] = $objQuery->nextVal($this->seq_name);
         $product_id = $sqlval[$this->id_column];
         $sqlval['create_date'] = $arrList['update_date'];
         // INSERTの実行
         GC_Utils_Ex::gfPrintLog(print_r(array(__LINE__, $sqlval, $arrList), true), DEBUG_LOG_REALFILE);
         $objQuery->insert($this->table, $sqlval);
     }
     $objDb = new SC_Helper_DB_Ex();
     // カテゴリ登録
     if (isset($arrList['category_ids'])) {
         if ($objDb->sfColumnExists($this->categories_table, $this->id_column)) {
             $objQuery->delete($this->categories_table, $this->id_column . " = ?", array($sqlval[$this->id_column]));
             $arrCategory_id = explode(',', $arrList['category_ids']);
             $rank = 1;
             foreach ($arrCategory_id as $category_id) {
                 $sqlval2 = array($this->id_column => $sqlval[$this->id_column], "category_id" => $category_id, "rank" => $rank++);
                 $sqlval2 = $objQuery->extractOnlyColsOf($this->categories_table, $sqlval2);
                 $objQuery->insert($this->categories_table, $sqlval2);
             }
         }
     } elseif (count($this->arrCategory) == 1) {
         if ($objDb->sfColumnExists($this->categories_table, $this->id_column)) {
             $objQuery->delete($this->categories_table, $this->id_column . " = ?", array($sqlval[$this->id_column]));
             $keys = array_keys($this->arrCategory);
             $sqlval2 = array($this->id_column => $sqlval[$this->id_column], "category_id" => $keys[0], "rank" => 1);
             $sqlval2 = $objQuery->extractOnlyColsOf($this->categories_table, $sqlval2);
             $objQuery->insert($this->categories_table, $sqlval2);
         }
     }
 }
开发者ID:alice-asahina,项目名称:support_device,代码行数:75,代码来源:LC_Page_Admin_Basis_DeviceAndroid_Csv.php


注:本文中的SC_Query::extractOnlyColsOf方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。