2013-08-01 37 views
0

我看到了下面的代碼在一個擴展文件:typo3擴展:exec_SELECTquery和SELECTquery有什麼區別?

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
        'fu.uid, fu.tstamp, fu.username, fu.usergroup, fu.email, fu.tx_jcregister_first_name, fu.tx_jcregister_last_name', 
        'fe_users fu'.$from, 
        $where, 
        '', 
        $markerArray['###SORT###'].' '.$markerArray['###ORDER###'], 
        $limit 
       ); 

,當我檢查文件:class.t3lib_db.php,我看到了另一個函數/方法:

function SELECTquery($select_fields, $from_table, $where_clause, $groupBy = '', $orderBy = '', $limit = '') 

所以我的問題是:

exec_SELECTquerySELECTquery有什麼區別?當使用exec_SELECTquery?何時使用SELECTquery

回答

1

在這個類中還有一些數據庫操作放在單一方法中,如updatedelete等。他們配對,其中一個以exec_作爲前綴。如果你閱讀了documentation(顯然你不這麼做),那麼每種方法都有很好的解釋。

方法沒有exec_前綴全部返回一個字符串,即查詢構建。 exec_xyz全部返回查詢結果,因爲查詢不僅已建成,而且exec顧名思義。

function exec_SELECTquery($select_fields, $from_table, $where_clause, $groupBy = '', $orderBy = '', $limit = '') { 
    $query = $this->SELECTquery($select_fields, $from_table, $where_clause, $groupBy, $orderBy, $limit); 
    $res = mysql_query($query, $this->link); 
    if ($this->debugOutput) { 
     $this->debug('exec_SELECTquery'); 
    } 
    if ($this->explainOutput) { 
     $this->explain($query, $from_table, $this->sql_num_rows($res)); 
    } 
    return $res; 
} 

如果你只是忽略這兩個if S爲那一刻,這種方法確實比「包裝」與它的執行查詢的建築僅此而已。這兩個條件僅用於調試。

順便說一句:我強烈建議你自己做一些更多的研究,比如google,看看文檔或者看看代碼中的更深層次。如果你不明白你的問題所涉及的小部分代碼,我懷疑你在最新的問題意味着什麼(沒有冒犯)的情況下調查一個關於這個級別細節的TYPO3擴展是合理的。

相關問題