当前位置: 首页>>代码示例>>PHP>>正文


PHP Varien_Db_Select::assemble方法代码示例

本文整理汇总了PHP中Varien_Db_Select::assemble方法的典型用法代码示例。如果您正苦于以下问题:PHP Varien_Db_Select::assemble方法的具体用法?PHP Varien_Db_Select::assemble怎么用?PHP Varien_Db_Select::assemble使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Varien_Db_Select的用法示例。


在下文中一共展示了Varien_Db_Select::assemble方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testWhere

 public function testWhere()
 {
     $select = new Varien_Db_Select($this->_getAdapterMockWithMockedQuote(1, "'5'"));
     $select->from('test')->where('field = ?', 5);
     $this->assertEquals("SELECT `test`.* FROM `test` WHERE (field = '5')", $select->assemble());
     $select = new Varien_Db_Select($this->_getAdapterMockWithMockedQuote(1, "''"));
     $select->from('test')->where('field = ?');
     $this->assertEquals("SELECT `test`.* FROM `test` WHERE (field = '')", $select->assemble());
     $select = new Varien_Db_Select($this->_getAdapterMockWithMockedQuote(1, "'%?%'"));
     $select->from('test')->where('field LIKE ?', '%value?%');
     $this->assertEquals("SELECT `test`.* FROM `test` WHERE (field LIKE '%?%')", $select->assemble());
     $select = new Varien_Db_Select($this->_getAdapterMockWithMockedQuote(0));
     $select->from('test')->where("field LIKE '%value?%'", null, Varien_Db_Select::TYPE_CONDITION);
     $this->assertEquals("SELECT `test`.* FROM `test` WHERE (field LIKE '%value?%')", $select->assemble());
     $select = new Varien_Db_Select($this->_getAdapterMockWithMockedQuote(1, "'1', '2', '4', '8'"));
     $select->from('test')->where("id IN (?)", array(1, 2, 4, 8));
     $this->assertEquals("SELECT `test`.* FROM `test` WHERE (id IN ('1', '2', '4', '8'))", $select->assemble());
 }
开发者ID:,项目名称:,代码行数:18,代码来源:

示例2: insertFromSelect

 /**
  * Get insert from Select object query
  *
  * @param Varien_Db_Select $select
  * @param string $table     insert into table
  * @param array $fields
  * @param bool|int $mode
  * @return string
  */
 public function insertFromSelect(Varien_Db_Select $select, $table, array $fields = array(), $mode = false)
 {
     $query = 'INSERT';
     if ($mode == self::INSERT_IGNORE) {
         $query .= ' IGNORE';
     }
     $query = sprintf('%s INTO %s', $query, $this->quoteIdentifier($table));
     if ($fields) {
         $columns = array_map(array($this, 'quoteIdentifier'), $fields);
         $query = sprintf('%s (%s)', $query, join(', ', $columns));
     }
     $query = sprintf('%s %s', $query, $select->assemble());
     if ($mode == self::INSERT_ON_DUPLICATE) {
         if (!$fields) {
             $describe = $this->describeTable($table);
             foreach ($describe as $column) {
                 if ($column['PRIMARY'] === false) {
                     $fields[] = $column['COLUMN_NAME'];
                 }
             }
         }
         $update = array();
         foreach ($fields as $k => $v) {
             $field = $value = null;
             if (!is_numeric($k)) {
                 $field = $this->quoteIdentifier($k);
                 if ($v instanceof Zend_Db_Expr) {
                     $value = $v->__toString();
                 } elseif (is_string($v)) {
                     $value = sprintf('VALUES(%s)', $this->quoteIdentifier($v));
                 } elseif (is_numeric($v)) {
                     $value = $this->quoteInto('?', $v);
                 }
             } elseif (is_string($v)) {
                 $value = sprintf('VALUES(%s)', $this->quoteIdentifier($v));
                 $field = $this->quoteIdentifier($v);
             }
             if ($field && $value) {
                 $update[] = sprintf('%s = %s', $field, $value);
             }
         }
         if ($update) {
             $query = sprintf('%s ON DUPLICATE KEY UPDATE %s', $query, join(', ', $update));
         }
     }
     return $query;
 }
开发者ID:z4kko,项目名称:smartdevs-indexer,代码行数:56,代码来源:Mysql.php

示例3: exists

 /**
  * Add EXISTS clause
  *
  * @param  Varien_Db_Select $select
  * @param  string           $joinCondition
  * @param   bool            $isExists
  * @return Varien_Db_Select
  */
 public function exists($select, $joinCondition, $isExists = true)
 {
     if ($isExists) {
         $exists = 'EXISTS (%s)';
     } else {
         $exists = 'NOT EXISTS (%s)';
     }
     $select->reset(self::COLUMNS)->columns(array(new Zend_Db_Expr('1')))->where($joinCondition);
     $exists = sprintf($exists, $select->assemble());
     $this->where($exists);
     return $this;
 }
开发者ID:QiuLihua83,项目名称:magento-enterprise-1.13.1.0,代码行数:20,代码来源:Select.php

示例4: getQueryUsingAnalyticFunction

 /**
  * Returns select query with analytic functions
  *
  * @param Varien_Db_Select $select
  * @return string
  */
 public function getQueryUsingAnalyticFunction(Varien_Db_Select $select)
 {
     return $select->assemble();
 }
开发者ID:blazeriaz,项目名称:youguess,代码行数:10,代码来源:Mysql4.php

示例5: insertFromSelect

 /**
  * Get insert from Select object query
  *
  * @param Varien_Db_Select $select
  * @param string $table     insert into table
  * @param array $fields
  * @param int $mode
  * @return string
  */
 public function insertFromSelect(Varien_Db_Select $select, $table, array $fields = array(), $mode = false)
 {
     $query = 'INSERT';
     if ($mode == self::INSERT_IGNORE) {
         $query .= ' IGNORE';
     }
     $query = sprintf('%s INTO %s', $query, $this->quoteIdentifier($table));
     if ($fields) {
         $columns = array_map(array($this, 'quoteIdentifier'), $fields);
         $query = sprintf('%s (%s)', $query, join(', ', $columns));
     }
     $query = sprintf('%s %s', $query, $select->assemble());
     if ($mode == self::INSERT_ON_DUPLICATE) {
         if (!$fields) {
             $describe = $this->describeTable($table);
             foreach ($describe as $column) {
                 if ($column['PRIMARY'] === false) {
                     $fields[] = $column['COLUMN_NAME'];
                 }
             }
         }
         $update = array();
         foreach ($fields as $field) {
             $update[] = sprintf('%1$s = VALUES(%1$s)', $this->quoteIdentifier($field));
         }
         if ($update) {
             $query = sprintf('%s ON DUPLICATE KEY UPDATE %s', $query, join(', ', $update));
         }
     }
     return $query;
 }
开发者ID:pminternetsolutions,项目名称:Magento-Pre-Patched-Files,代码行数:40,代码来源:Mysql.php

示例6: assemble

 /**
  * (non-PHPdoc)
  * @see Zend_Db_Select::assemble()
  */
 public function assemble()
 {
     $sql = parent::assemble();
     $bindings = $this->_binding;
     $select = $this;
     $regex = '/{([a-z_]+)}/i';
     $cb = function ($match) use(&$cb, $regex, $bindings, $sql, $select) {
         if (isset($bindings[$match[1]])) {
             return preg_replace_callback($regex, $cb, $bindings[$match[1]]);
         }
         $exception = new Mzax_Db_Select_Exception("Binding '{$match[1]}' does not exist", 1001, $select);
         $exception->sql = $sql;
         throw $exception;
     };
     // replace all binding placeholders
     return preg_replace_callback($regex, $cb, $sql);
 }
开发者ID:sakibanda,项目名称:emarketing,代码行数:21,代码来源:Select.php

示例7: assemble

 /**
  * (non-PHPdoc)
  * @see Zend_Db_Select::assemble()
  */
 public function assemble()
 {
     $sql = parent::assemble();
     $bindings = $this->_binding;
     $regex = '/{([a-z_]+)}/i';
     $cb = function ($match) use(&$cb, $regex, $bindings) {
         if (isset($bindings[$match[1]])) {
             return preg_replace_callback($regex, $cb, $bindings[$match[1]]);
         }
         throw new Exception("Binding '{$match[1]}' does not exist");
     };
     // replace all binding placeholders
     return preg_replace_callback($regex, $cb, $sql);
 }
开发者ID:jsiefer,项目名称:emarketing,代码行数:18,代码来源:Select.php


注:本文中的Varien_Db_Select::assemble方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。