我在一个扩展文件中看到了以下代码:
$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_SELECTquery
和SELECTquery
之间有什么区别?当使用exec_SELECTquery
时?何时使用SELECTquery
?
答案 0 :(得分:1)
此类中的单个方法中还有一些数据库操作,如update
,delete
等。它们配对,一个以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
,这个方法只会执行它“包装”查询构建。这两个条件仅用于调试。