Ignore:
Timestamp:
2014/04/29 13:19:40 (10 years ago)
Author:
Seasoft
Message:

#2532 (LC_Page_Admin_Contents_CsvSql#lfDoCsvOutput LIMIT の判定が不適切)
#2531 (DBMS に依存したサブクエリー内の LIMIT OFFSET を排除する)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13-dev/data/class/pages/admin/contents/LC_Page_Admin_Contents_CsvSql.php

    r23124 r23375  
    352352    public function lfDoCsvOutput($sql_id) 
    353353    { 
     354        $objCSV = new SC_Helper_CSV_Ex(); 
     355 
    354356        $arrData = $this->lfGetSqlList('sql_id = ?', array($sql_id)); 
    355         $sql = 'SELECT ' . $arrData[0]['csv_sql'] . ' '; 
    356  
    357         // TODO: ヘッダ取得 SQL内にLIMIT文がある場合はLIMIT句は追加しないので重いかも 
    358         $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    359  
    360         $arrHeader = array(); 
    361         if (!preg_match('/ LIMIT /', $sql)) { 
    362             $head_sql = $sql . ' LIMIT 0'; 
    363         } else { 
    364             $head_sql = $sql; 
    365         } 
    366         $arrData = $objQuery->getQueryDefsFields($head_sql, array(), true); 
    367         if (!SC_Utils_Ex::isBlank($arrData)) { 
    368             foreach ($arrData as $key => $val) { 
    369                 $arrHeader[] = $key; 
    370             } 
    371         } 
    372         $objCSV = new SC_Helper_CSV_Ex(); 
    373         $objCSV->sfDownloadCsvFromSql($sql, array(), 'contents', $arrHeader, true); 
     357        $sql = 'SELECT ' . $arrData[0]['csv_sql']; 
     358 
     359        $objCSV->sfDownloadCsvFromSql($sql, array(), 'contents', null, true); 
    374360        SC_Response_Ex::actionExit(); 
    375361    } 
Note: See TracChangeset for help on using the changeset viewer.