Ignore:
Timestamp:
2012/02/22 01:27:53 (10 years ago)
Author:
Seasoft
Message:

#1656 (カテゴリ登録のロジックを高速化)
#1661 (共通ロジックを利用する)

  • SC_Query#getCol

#1660 (SC_Helper_DB#sfCountCategory メモリ消費が激しい)
#1659 (SC_Helper_DB#sfCountCategory メモリリークが発生する)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/SC_Query.php

    r21514 r21544  
    3838    var $groupby = ''; 
    3939    var $order = ''; 
    40     var $force_run; 
     40    var $force_run = false; 
    4141 
    4242    /** 
     
    469469     * @param array $arrSql array('カラム名' => 'SQL文', ...)の連想配列 
    470470     * @param array $arrSqlVal SQL文の中で使用するプレースホルダ配列 
    471      * @return 
    472      */ 
    473     function insert($table, $sqlval, $arrSql = array(), $arrSqlVal = array()) { 
     471     * @param string $from FROM 句・WHERE 句 
     472     * @param string $arrFromVal FROM 句・WHERE 句で使用するプレースホルダ配列 
     473     * @return integer|DB_Error 挿入件数またはDB_Error 
     474     */ 
     475    function insert($table, $sqlval, $arrSql = array(), $arrSqlVal = array(), $from = '', $arrFromVal = array()) { 
    474476        $strcol = ''; 
    475477        $strval = ''; 
     
    502504        } 
    503505        // 文末の','を削除 
    504         $strcol = preg_replace("/,$/", "", $strcol); 
    505         $strval = preg_replace("/,$/", "", $strval); 
    506         $sqlin = "INSERT INTO $table(" . $strcol. ") VALUES (" . $strval . ")"; 
     506        $strcol = rtrim($strcol, ','); 
     507        $strval = rtrim($strval, ','); 
     508        $sqlin = "INSERT INTO $table($strcol) SELECT $strval"; 
     509 
     510        if (strlen($from) >= 1) { 
     511            $sqlin .= ' ' . $from; 
     512            $arrVal = array_merge($arrVal, $arrFromVal); 
     513        } 
     514 
    507515        // INSERT文の実行 
    508516        $ret = $this->query($sqlin, $arrVal, false, null, MDB2_PREPARE_MANIP); 
Note: See TracChangeset for help on using the changeset viewer.