Create a Delete Query object.
public createDeleteQuery ( ) : eZ\Publish\Core\Persistence\Database\DeleteQuery | ||
return | eZ\Publish\Core\Persistence\Database\DeleteQuery |
/** * Deletes the UrlWildcard with given $id. * * @param mixed $id */ public function deleteUrlWildcard($id) { /** @var $query \eZ\Publish\Core\Persistence\Database\DeleteQuery */ $query = $this->dbHandler->createDeleteQuery(); $query->deleteFrom($this->dbHandler->quoteTable('ezurlwildcard'))->where($query->expr->eq($this->dbHandler->quoteColumn('id'), $query->bindValue($id, null, \PDO::PARAM_INT))); $query->prepare()->execute(); }
/** * Deletes the relation with the given $relationId. * * @param int $relationId * @param int $type {@see \eZ\Publish\API\Repository\Values\Content\Relation::COMMON, * \eZ\Publish\API\Repository\Values\Content\Relation::EMBED, * \eZ\Publish\API\Repository\Values\Content\Relation::LINK, * \eZ\Publish\API\Repository\Values\Content\Relation::FIELD} */ public function deleteRelation($relationId, $type) { // Legacy Storage stores COMMON, LINK and EMBED types using bitmask, therefore first load // existing relation type by given $relationId for comparison /** @var $query \eZ\Publish\Core\Persistence\Database\SelectQuery */ $query = $this->dbHandler->createSelectQuery(); $query->select($this->dbHandler->quoteColumn('relation_type'))->from($this->dbHandler->quoteTable('ezcontentobject_link'))->where($query->expr->eq($this->dbHandler->quoteColumn('id'), $query->bindValue($relationId, null, \PDO::PARAM_INT))); $statement = $query->prepare(); $statement->execute(); $loadedRelationType = $statement->fetchColumn(); if (!$loadedRelationType) { return; } // If relation type matches then delete if ($loadedRelationType == $type) { /** @var $query \eZ\Publish\Core\Persistence\Database\DeleteQuery */ $query = $this->dbHandler->createDeleteQuery(); $query->deleteFrom('ezcontentobject_link')->where($query->expr->eq($this->dbHandler->quoteColumn('id'), $query->bindValue($relationId, null, \PDO::PARAM_INT))); $query->prepare()->execute(); } elseif ($loadedRelationType & $type) { // If relation type is composite update bitmask /** @var $query \eZ\Publish\Core\Persistence\Database\UpdateQuery */ $query = $this->dbHandler->createUpdateQuery(); $query->update($this->dbHandler->quoteTable('ezcontentobject_link'))->set($this->dbHandler->quoteColumn('relation_type'), $query->expr->bitAnd($this->dbHandler->quoteColumn('relation_type'), $query->bindValue(~$type, null, \PDO::PARAM_INT)))->where($query->expr->eq($this->dbHandler->quoteColumn('id'), $query->bindValue($relationId, null, \PDO::PARAM_INT))); $query->prepare()->execute(); } else { // No match, do nothing } }
/** * Delete relation between a word and a content object. * * @param $contentId */ public function deleteObjectWordsLink($contentId) { $query = $this->dbHandler->createDeleteQuery(); $query->deleteFrom($this->dbHandler->quoteTable('ezsearch_object_word_link'))->where($query->expr->eq($this->dbHandler->quoteColumn('contentobject_id'), ':contentId')); $stmt = $query->prepare(); $stmt->execute(['contentId' => $contentId]); }
/** * Remove all limitations for a policy. * * @param mixed $policyId */ public function removePolicyLimitations($policyId) { $query = $this->handler->createSelectQuery(); $query->select($this->handler->aliasedColumn($query, 'id', 'ezpolicy_limitation'), $this->handler->aliasedColumn($query, 'id', 'ezpolicy_limitation_value'))->from($this->handler->quoteTable('ezpolicy'))->leftJoin($this->handler->quoteTable('ezpolicy_limitation'), $query->expr->eq($this->handler->quoteColumn('policy_id', 'ezpolicy_limitation'), $this->handler->quoteColumn('id', 'ezpolicy')))->leftJoin($this->handler->quoteTable('ezpolicy_limitation_value'), $query->expr->eq($this->handler->quoteColumn('limitation_id', 'ezpolicy_limitation_value'), $this->handler->quoteColumn('id', 'ezpolicy_limitation')))->where($query->expr->eq($this->handler->quoteColumn('id', 'ezpolicy'), $query->bindValue($policyId, null, \PDO::PARAM_INT))); $statement = $query->prepare(); $statement->execute(); $limitationIdsSet = array(); $limitationValuesSet = array(); while ($row = $statement->fetch(\PDO::FETCH_ASSOC)) { if ($row['ezpolicy_limitation_id'] !== null) { $limitationIdsSet[$row['ezpolicy_limitation_id']] = true; } if ($row['ezpolicy_limitation_value_id'] !== null) { $limitationValuesSet[$row['ezpolicy_limitation_value_id']] = true; } } if (!empty($limitationIdsSet)) { $query = $this->handler->createDeleteQuery(); $query->deleteFrom($this->handler->quoteTable('ezpolicy_limitation'))->where($query->expr->in($this->handler->quoteColumn('id'), array_keys($limitationIdsSet))); $query->prepare()->execute(); } if (!empty($limitationValuesSet)) { $query = $this->handler->createDeleteQuery(); $query->deleteFrom($this->handler->quoteTable('ezpolicy_limitation_value'))->where($query->expr->in($this->handler->quoteColumn('id'), array_keys($limitationValuesSet))); $query->prepare()->execute(); } }
/** * Deletes all rows with given $action and optionally $id. * * If $id is set only autogenerated entries will be removed. * * @param mixed $action * @param mixed|null $id * * @return boolean */ public function remove($action, $id = null) { /** @var $query \eZ\Publish\Core\Persistence\Database\DeleteQuery */ $query = $this->dbHandler->createDeleteQuery(); $query->deleteFrom($this->dbHandler->quoteTable('ezurlalias_ml'))->where($query->expr->eq($this->dbHandler->quoteColumn("action"), $query->bindValue($action, null, \PDO::PARAM_STR))); if ($id !== null) { $query->where($query->expr->lAnd($query->expr->eq($this->dbHandler->quoteColumn("is_alias"), $query->bindValue(0, null, \PDO::PARAM_INT)), $query->expr->eq($this->dbHandler->quoteColumn("id"), $query->bindValue($id, null, \PDO::PARAM_INT)))); } $query->prepare()->execute(); }
/** * Remove role from user or user group * * @param mixed $contentId * @param mixed $roleId */ public function removeRole( $contentId, $roleId ) { $query = $this->handler->createDeleteQuery(); $query ->deleteFrom( $this->handler->quoteTable( 'ezuser_role' ) ) ->where( $query->expr->lAnd( $query->expr->eq( $this->handler->quoteColumn( 'contentobject_id' ), $query->bindValue( $contentId, null, \PDO::PARAM_INT ) ), $query->expr->eq( $this->handler->quoteColumn( 'role_id' ), $query->bindValue( $roleId, null, \PDO::PARAM_INT ) ) ) ); $query->prepare()->execute(); }
/** * Deletes tag identified by $tagId, including its synonyms and all tags under it. * * If $tagId is a synonym, only the synonym is deleted * * @param mixed $tagId */ public function deleteTag($tagId) { $query = $this->handler->createSelectQuery(); $query->select('id')->from($this->handler->quoteTable('eztags'))->where($query->expr->lOr($query->expr->like($this->handler->quoteColumn('path_string'), $query->bindValue('%/' . (int) $tagId . '/%', null, PDO::PARAM_STR)), $query->expr->eq($this->handler->quoteColumn('main_tag_id'), $query->bindValue($tagId, null, PDO::PARAM_INT)))); $statement = $query->prepare(); $statement->execute(); $tagIds = array(); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { $tagIds[] = (int) $row['id']; } if (empty($tagIds)) { return; } $query = $this->handler->createDeleteQuery(); $query->deleteFrom($this->handler->quoteTable('eztags_attribute_link'))->where($query->expr->in($this->handler->quoteColumn('keyword_id'), $tagIds)); $query->prepare()->execute(); $query = $this->handler->createDeleteQuery(); $query->deleteFrom($this->handler->quoteTable('eztags_keyword'))->where($query->expr->in($this->handler->quoteColumn('keyword_id'), $tagIds)); $query->prepare()->execute(); $query = $this->handler->createDeleteQuery(); $query->deleteFrom($this->handler->quoteTable('eztags'))->where($query->expr->in($this->handler->quoteColumn('id'), $tagIds)); $query->prepare()->execute(); }
/** * Deletes all group assignments for a Type. * * @param mixed $typeId * @param int $status * * @return void */ public function deleteGroupAssignmentsForType($typeId, $status) { $q = $this->dbHandler->createDeleteQuery(); $q->deleteFrom($this->dbHandler->quoteTable('ezcontentclass_classgroup'))->where($q->expr->lAnd($q->expr->eq($this->dbHandler->quoteColumn('contentclass_id'), $q->bindValue($typeId, null, \PDO::PARAM_INT)), $q->expr->eq($this->dbHandler->quoteColumn('contentclass_version'), $q->bindValue($status, null, \PDO::PARAM_INT)))); $q->prepare()->execute(); }
/** * Removes trashed element identified by $id from trash. * Will NOT remove associated content object nor attributes. * * @param int $id The trashed location Id */ public function removeElementFromTrash($id) { $query = $this->handler->createDeleteQuery(); $query->deleteFrom('ezcontentobject_trash')->where($query->expr->eq($this->handler->quoteColumn('node_id'), $query->bindValue($id, null, \PDO::PARAM_INT))); $query->prepare()->execute(); }
/** * Deletes all translations of the $groupId state group * * @param mixed $groupId */ protected function deleteObjectStateGroupTranslations($groupId) { $query = $this->dbHandler->createDeleteQuery(); $query->deleteFrom($this->dbHandler->quoteTable('ezcobj_state_group_language'))->where($query->expr->eq($this->dbHandler->quoteColumn('contentobject_state_group_id'), $query->bindValue($groupId, null, \PDO::PARAM_INT))); $query->prepare()->execute(); }