typo3扩展:exec_SELECTquery和SELECTquery有什么区别?

时间:2013-08-01 01:59:54

标签: typo3

我在一个扩展文件中看到了以下代码:

$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 个答案:

答案 0 :(得分: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,这个方法只会执行它“包装”查询构建。这两个条件仅用于调试。

顺便说一句:我强烈建议你自己做一些更多的研究,比如谷歌,查看文档或者只是看一下代码。如果您不理解您的问题所涉及的一小段代码,我怀疑您在此级别详细信息上调查TYPO3扩展是有意义的,因为您的最新问题意味着(没有冒犯)。