本文整理汇总了PHP中Zend_Db_Select::assemble方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Db_Select::assemble方法的具体用法?PHP Zend_Db_Select::assemble怎么用?PHP Zend_Db_Select::assemble使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Db_Select
的用法示例。
在下文中一共展示了Zend_Db_Select::assemble方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: assemble
/**
* Performs a validation on the select query before passing back to the parent class.
* Ensures that only columns from the primary Zend_Db_Table are returned in the result.
*
* @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 PHP_LIBRARY_PATH . 'Zend/Db/Table/Select/Exception.php';
throw new Zend_Db_Table_Select_Exception('Select query cannot join with another table');
}
}
}
}
}
return parent::assemble();
}
示例2: __construct
/**
* Constructor.
*
* @param Zend_Db_Select $select The select query
*/
public function __construct(Zend_Db_Select $select)
{
$this->_select = $select;
$this->_cacheIdentifier = md5($select->assemble());
}
示例3: setup2
private function setup2(Zend_Db_Select $select, $columes = null)
{
$conn = $select->getAdapter();
$this->setConnection($conn);
$extFields = array();
if ($columes == null) {
$sql = $select->assemble();
$db = $this->conn;
$columes = $this->_getColumns($sql, $db);
}
foreach ($columes as $field) {
$extFields[]['field'] = $field;
}
$this->_setFields($extFields);
$this->strTable = " ( {$sql} ) AS tableName ";
}
示例4: testCacheIdentifierIsHashOfAssembledSelect
/**
* @group ZF-6989
*/
public function testCacheIdentifierIsHashOfAssembledSelect()
{
$dbAdapter = $this->getMockForAbstractClass('Zend_Db_Adapter_Abstract', array(''), '', false);
$select = new Zend_Db_Select($dbAdapter);
$select->from('ZF_6989');
$paginatorAdapter = new Zend_Paginator_Adapter_DbSelect($select);
$this->assertSame(md5($select->assemble()), $paginatorAdapter->getCacheIdentifier(), 'Cache identifier incorrect!');
}
示例5: fetchEach
/**
* @param \Zend_Db_Select $select
* @param array $params
* @return \Generator
* @throws Exception
*/
public function fetchEach(\Zend_Db_Select $select, $params = [])
{
$sql = $select->assemble();
$statement = $this->getReadAdapter()->query($sql, $params);
while ($record = $statement->fetch()) {
(yield $record);
}
}
示例6: removeAllEntriesWhereSubSelect
/**
* Removes a all cache entries matching given constraint.
*
* @param Zend_Db_Select $select Select statement to use as subselect
* The statement MUST return a list of document ids
* @return void
*/
public function removeAllEntriesWhereSubSelect($select)
{
$where = 'document_id IN (' . $select->assemble() . ')';
$this->_table->delete($where);
}
示例7: assemble
/**
* @return String
*/
public function assemble()
{
return $this->_selector->assemble();
}
示例8: setup2
private function setup2(Zend_Db_Select $select, $columes = null)
{
$conn = $select->getAdapter();
$this->setConnection($conn);
if ($conn instanceof Zend_Db_Adapter_Pdo_Mysql) {
$this->_drivertype = 'mysql';
}
$extFields = array();
if ($columes == null) {
$sql = $select->assemble();
$db = $this->conn;
if ($db instanceof Zend_Db_Adapter_Sqlsrv) {
$columes = $this->_getSqlsrvColumns($sql, $db);
} elseif ($db instanceof Zend_Db_Adapter_Pdo_Mysql) {
$columes = $this->_getMysqlColumns($sql, $db);
}
}
foreach ($columes as $field) {
$extFields[]['field'] = $field;
}
$this->_setFields($extFields);
$this->strTable = " ( {$sql} ) AS tableName ";
}
示例9: setSubSelectNotExists
/**
* Add a subselect as constraint
*
* @param Zend_Db_Select $select A select object used as subselect in query.
* The subquery must return a list of document ids.
*
* @return Opus_DocumentFinder Fluent interface.
*/
public function setSubSelectNotExists($select)
{
$this->select->where(' NOT d.id IN (' . $select->assemble() . ')');
return $this;
}
示例10: assemble
/**
* Performs a validation on the select query before passing back to the parent class.
* Ensures that only columns from the primary Kwf_Db_Table are returned in the result.
*
* @return string|null This object as a SELECT string (or null if a string cannot be produced)
*/
public function assemble()
{
$fields = $this->getPart(Kwf_Db_Table_Select::COLUMNS);
$primary = $this->_table->getTableName();
$schema = $this->_table->getSchemaName();
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(Kwf_Db_Table_Select::COLUMNS);
}
$from = $this->getPart(Kwf_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) {
throw new Kwf_Exception('Select query cannot join with another table');
}
}
}
}
}
return parent::assemble();
}