SelectStatement.php 997 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
<?php
/**
 * SelectStatement = [SelectClause] FromClause [WhereClause] [GroupByClause]
 *     [HavingClause] [OrderByClause] [LimitClause]
 */
class Doctrine_Query_Production_SelectStatement extends Doctrine_Query_Production
{
    public function execute(array $params = array())
    {
        if ($this->_isNextToken(Doctrine_Query_Token::T_SELECT)) {
            $this->SelectClause();
        }

        $this->FromClause();

        if ($this->_isNextToken(Doctrine_Query_Token::T_WHERE)) {
            $this->WhereClause();
        }

        if ($this->_isNextToken(Doctrine_Query_Token::T_GROUP)) {
            $this->GroupByClause();
        }

        if ($this->_isNextToken(Doctrine_Query_Token::T_HAVING)) {
            $this->HavingClause();
        }

        if ($this->_isNextToken(Doctrine_Query_Token::T_ORDER)) {
            $this->OrderByClause();
        }

        if ($this->_isNextToken(Doctrine_Query_Token::T_LIMIT)) {
            $this->LimitClause();
        }
    }
}