Zend_Db_Table_Select::assemble PHP Method

assemble() public method

Ensures that only columns from the primary Zend_Db_Table are returned in the result.
public assemble ( ) : string | null
return string | null This object as a SELECT string (or null if a string cannot be produced)
    public function assemble()
    {
        $fields = $this->getPart(Zend_Db_Table_Select::COLUMNS);
        $primary = $this->_info[Zend_Db_Table_Abstract::NAME];
        $schema = $this->_info[Zend_Db_Table_Abstract::SCHEMA];
        if (count($this->_parts[self::UNION]) == 0) {
            // If no fields are specified we assume all fields from primary table
            if (!count($fields)) {
                $this->from($primary, self::SQL_WILDCARD, $schema);
                $fields = $this->getPart(Zend_Db_Table_Select::COLUMNS);
            }
            $from = $this->getPart(Zend_Db_Table_Select::FROM);
            if ($this->_integrityCheck !== false) {
                foreach ($fields as $columnEntry) {
                    list($table, $column) = $columnEntry;
                    // Check each column to ensure it only references the primary table
                    if ($column) {
                        if (!isset($from[$table]) || $from[$table]['tableName'] != $primary) {
                            require_once 'Zend/Db/Table/Select/Exception.php';
                            throw new Zend_Db_Table_Select_Exception('Select query cannot join with another table');
                        }
                    }
                }
            }
        }
        return parent::assemble();
    }

Usage Example

Esempio n. 1
0
 public function assemble()
 {
     $assembled = parent::assemble();
     /** @var $logger Logger_Application_Logger */
     $logger = Zend_Registry::get('logger');
     $logger->log(__CLASS__ . ":: " . $assembled, "system", Zend_log::DEBUG);
     return $assembled;
 }
All Usage Examples Of Zend_Db_Table_Select::assemble