Ejemplo n.º 1
0
 /**
  * Overrides parent implementation. Only column of type text or character (and its variants)
  * accepts the LIKE criteria.
  * @param array list of column id for potential search condition.
  * @param string string of keywords
  * @return string SQL search condition matching on a set of columns.
  */
 public function getSearchExpression($fields, $keywords)
 {
     $columns = array();
     foreach ($fields as $field) {
         if ($this->isSearchableColumn($this->getTableInfo()->getColumn($field))) {
             $columns[] = $field;
         }
     }
     return parent::getSearchExpression($columns, $keywords);
 }
 protected function applyParameterMap($manager, $command, $prepared, $statement, $parameterObject)
 {
     $properties = $prepared->getParameterNames();
     $parameters = $prepared->getParameterValues();
     $registry = $manager->getTypeHandlers();
     for ($i = 0, $k = $properties->getCount(); $i < $k; $i++) {
         $property = $statement->parameterMap()->getProperty($i);
         $value = $statement->parameterMap()->getPropertyValue($registry, $property, $parameterObject);
         $dbType = $property->getDbType();
         if ($dbType == '') {
             //relies on PHP lax comparison
             $command->bindValue($i + 1, $value, TDbCommandBuilder::getPdoType($value));
         } else {
             if (strpos($dbType, 'PDO::') === 0) {
                 $command->bindValue($i + 1, $value, constant($property->getDbType()));
             } else {
                 $command->bindValue($i + 1, $value);
             }
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * Creates an UPDATE command that increments/decrements certain columns.
  * Override parent implementation to check if an orderby clause if specified when querying with an offset
  * @param TDbTableSchema the table metadata
  * @param TDbCriteria the query criteria
  * @param array counters to be updated (counter increments/decrements indexed by column names.)
  * @return TDbCommand the created command
  * @throws CException if no counter is specified
  */
 public function createUpdateCounterCommand($table, $counters, $criteria)
 {
     $criteria = $this->checkCriteria($table, $criteria);
     return parent::createUpdateCounterCommand($table, $counters, $criteria);
 }