/** * Execute a delete query for an object * * @param Model $object * * @return bool */ public static function delete(Model &$object) { $database = self::get($object::_getDatabaseNamespace()); $connection = $database->getConnection(); //row identifier $criteria = $params = array(); foreach ($object->_getIdentifyingData() as $identifying_field => $identifying_value) { $value = $database->valueToSQL($identifying_value); $criteria[] = DB\Query::parseWhereCondition(sprintf('%s = ?', $database->escape($identifying_field)), $value); $params = array_merge($params, $value); } $sql = sprintf('DELETE FROM %s.%s WHERE %s;', $database->escape($object::_getSchemaName()), $database->escape($object::_getTableName()), implode(' AND ', $criteria)); $connection->prepare($sql)->execute($params); $object->_setLoaded(false); return true; }
/** * Alias to \Wave\DB\Query::from * * @param $from * @param null $alias * @param null $fields * * @return DB\Query */ public function from($from, &$alias = null, $fields = null) { $query = new Query($this); return $query->from($from, $alias, $fields); }