doctrine/orm · error · Doctrine\ORM\NonUniqueResultException

The query returned multiple rows. Change the query or use a

Error message

The query returned multiple rows. Change the query or use a different result function like getScalarResult().

What it means

Error "The query returned multiple rows. Change the query or use a different result function like getScalarResult()." thrown in doctrine/orm.

Source

Thrown at src/Internal/Hydration/SingleScalarHydrator.php:29

use function count;
use function key;

/**
 * Hydrator that hydrates a single scalar value from the result set.
 */
class SingleScalarHydrator extends AbstractHydrator
{
    protected function hydrateAllData(): mixed
    {
        $data    = $this->statement()->fetchAllAssociative();
        $numRows = count($data);

        if ($numRows === 0) {
            throw new NoResultException();
        }

        if ($numRows > 1) {
            throw new NonUniqueResultException('The query returned multiple rows. Change the query or use a different result function like getScalarResult().');
        }

        $result = $this->gatherScalarRowData($data[key($data)]);

        if (count($result) > 1) {
            throw new NonUniqueResultException('The query returned a row containing multiple columns. Change the query or use a different result function like getScalarResult().');
        }

        return array_shift($result);
    }
}

View on GitHub (pinned to d9b9ff7301)

When it happens

Trigger: Thrown at src/Internal/Hydration/SingleScalarHydrator.php:29 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of doctrine/orm@d9b9ff7301 (2026-08-21). Data as JSON: /api/errors/fa87e210978e5992. Report an issue: GitHub.