0

1 つの拡張ファイルで以下のコードを見ました。

$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

4

1 に答える 1

1

updateなど、このクラスの単一メソッドに含まれるデータベース操作が他にもいくつかありますdelete。それらは対になっており、1 つはexec_接頭辞として付いています。ドキュメンテーションを読むと(もちろん読んでいません)、すべてのメソッドについて非常によく説明されています。

プレフィックスのないメソッドはexec_すべて文字列、つまり作成されたクエリを返します。名前が示すように、クエリは作成されただけでなく、実行もされているため、すべてがクエリ結果exec_xyzを返します。

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;
}

2 つの s を今のところ無視するとif、このメソッドはクエリの実行で構築されたクエリを「ラップ」するだけです。2 つの条件はデバッグ用です。

ところで: Google で検索するか、ドキュメントを参照するか、コードをもう少し詳しく調べるなど、自分でさらに調査を行うことを強くお勧めします。質問の小さなコードを理解していない場合は、最新の質問が暗示しているように、このレベルの詳細で TYPO3 拡張機能を調査することに意味があるとは思えません (問題はありません)。

于 2013-08-01T07:04:17.473 に答える