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']); }
public static function destroyAll($conditions = array()) { $params = SqlBuilder::parseDestroySql(static::table(), $conditions); return Connection::instance()->execute($params['sql'], $params['values']); }
public function testParseDestroySql() { $this->assertEquals(array('sql' => 'DELETE FROM `user`', 'values' => array()), SqlBuilder::parseDestroySql('user')); $this->assertEquals(array('sql' => 'DELETE FROM `user` WHERE id = ? OR first_name = ?', 'values' => array(1, 'Tom')), SqlBuilder::parseDestroySql('user', array('id = ? OR first_name = ?', 1, 'Tom'))); }