diff --git a/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php b/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php index a0968014265..3d83deabf9f 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php @@ -87,6 +87,7 @@ public function loadMetadataForClass($className, PersistenceClassMetadata $metad continue; } + unset($classAnnotations[$key]); $classAnnotations[get_class($annot)] = $annot; } diff --git a/lib/Doctrine/ORM/Persisters/Entity/SingleTablePersister.php b/lib/Doctrine/ORM/Persisters/Entity/SingleTablePersister.php index bc9becac1cb..af454b666bd 100644 --- a/lib/Doctrine/ORM/Persisters/Entity/SingleTablePersister.php +++ b/lib/Doctrine/ORM/Persisters/Entity/SingleTablePersister.php @@ -135,13 +135,13 @@ protected function getSelectConditionDiscriminatorValueSQL(): string $values = []; if ($this->class->discriminatorValue !== null) { // discriminators can be 0 - $values[] = $this->conn->quote($this->class->discriminatorValue); + $values[] = $this->conn->quote((string) $this->class->discriminatorValue); } $discrValues = array_flip($this->class->discriminatorMap); foreach ($this->class->subClasses as $subclassName) { - $values[] = $this->conn->quote($discrValues[$subclassName]); + $values[] = $this->conn->quote((string) $discrValues[$subclassName]); } $discColumnName = $this->class->getDiscriminatorColumn()['name']; diff --git a/lib/Doctrine/ORM/Query/Filter/SQLFilter.php b/lib/Doctrine/ORM/Query/Filter/SQLFilter.php index 260b539d6d0..5c41fba8d7f 100644 --- a/lib/Doctrine/ORM/Query/Filter/SQLFilter.php +++ b/lib/Doctrine/ORM/Query/Filter/SQLFilter.php @@ -105,9 +105,7 @@ final public function getParameter(string $name): string throw FilterException::cannotConvertListParameterIntoSingleValue($name); } - $param = $this->parameters[$name]; - - return $this->em->getConnection()->quote($param['value'], $param['type']); + return $this->em->getConnection()->quote((string) $this->parameters[$name]['value']); } /** @@ -133,7 +131,7 @@ final public function getParameterList(string $name): string $connection = $this->em->getConnection(); $quoted = array_map( - static fn (mixed $value): string => (string) $connection->quote($value, $param['type']), + static fn (mixed $value): string => $connection->quote((string) $value), $param['value'] ); diff --git a/lib/Doctrine/ORM/Query/SqlWalker.php b/lib/Doctrine/ORM/Query/SqlWalker.php index 82cf19f5a40..153418450c5 100644 --- a/lib/Doctrine/ORM/Query/SqlWalker.php +++ b/lib/Doctrine/ORM/Query/SqlWalker.php @@ -461,7 +461,7 @@ private function generateDiscriminatorColumnConditionSQL(array $dqlAliases): str } foreach ($class->subClasses as $subclassName) { - $values[] = $conn->quote($this->em->getClassMetadata($subclassName)->discriminatorValue); + $values[] = $conn->quote((string) $this->em->getClassMetadata($subclassName)->discriminatorValue); } $sqlTableAlias = $this->useSqlTableAliases @@ -1812,7 +1812,7 @@ public function walkUpdateItem($updateItem) break; default: - $sql .= $this->conn->quote($newValue); + $sql .= $this->conn->quote((string) $newValue); break; }