Ejemplo n.º 1
0
 public function testParseConditions()
 {
     $this->assertEquals(array('sql' => 'age > 10', 'values' => array()), SqlBuilder::parseConditions(array('age > 10')));
     $this->assertEquals(array('sql' => 'age > ?', 'values' => array(10)), SqlBuilder::parseConditions(array('age > ?', 10)));
     $this->assertEquals(array('sql' => 'id in (?) or country = ?', 'values' => array(array(1, 2), 'China')), SqlBuilder::parseConditions(array('id in (?) or country = ?', array(1, 2), 'China')));
     $this->assertEquals(array('sql' => '`id` in (?) and `country` = ?', 'values' => array(array(1, 2), 'China')), SqlBuilder::parseConditions(array('id' => array(1, 2), 'country' => 'China')));
 }
Ejemplo n.º 2
0
 protected function _parseConditions($metadata)
 {
     $conditions = array('sql' => '', 'values' => array());
     if (isset($metadata['conditions'])) {
         $conditions = SqlBuilder::parseConditions($metadata['conditions']);
     }
     $defaultCondition = $this->_parseDefaultCondition($metadata);
     if (empty($conditions['sql'])) {
         $conditions['sql'] = $defaultCondition['sql'];
     } else {
         $conditions['sql'] = "({$conditions['sql']}) AND ({$defaultCondition['sql']})";
     }
     array_push($conditions['values'], $defaultCondition['value']);
     return array_merge(array($conditions['sql']), $conditions['values']);
 }