Skip to content

DBAL-231: Doctrine\DBAL\SQLParserUtils::getPlaceholderPositions() - regex #1407

Closed
@doctrinebot

Description

@doctrinebot

Jira issue originally created by user ivolator:

Running the following SQL (note the named parameter ":account_id"):

SELECT count('_') as cnt FROM feed f INNER JOIN orders_accounts oa ON oa.order_id = f.feed_id INNER JOIN users u ON u.id = f.user_id WHERE oa.account_id = :account_id AND f.feed_type='order' ORDER BY f.create*date DESC

ends up in a thrown exception.
This SQL was generated by using the Query Builder

    $qb = $this->_em->getConnection()->createQueryBuilder();
    $qb->select('count(\'*\') as cnt');//I know this is bad
    $qb->from('feed', 'f');
    $qb->innerJoin('f', 'orders*accounts', 'oa', 'oa.order_id = f.feed*id');
    $qb->innerJoin('f', 'users', 'u', 'u.id = f.user_id');
    $qb->where('oa.account*id = :account_id AND f.feed*type=\'order\'');
    $qb->setParameter('account*id', $accountId, \PDO::PARAM*INT);

    $stmt = $qb->execute();
    $res = $stmt->fetchAll(\PDO::FETCH_COLUMN);

string(82) "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'NULL_id' in 'where clause'"
string(3168) "#0 /var/www/cake_to_zf/library/Doctrine/DBAL/Connection.php(628): PDOStatement->execute()
#1 /var/www/cake_to_zf/library/Doctrine/DBAL/Query/QueryBuilder.php(185): Doctrine\DBAL\Connection->executeQuery('SELECT count('*...', Array, Array)
#2 /var/www/cake_to_zf/library/of/doctrine/SqlQueryBuilderPaginatorAdapter.php(69): Doctrine\DBAL\Query\QueryBuilder->execute()
#3 /var/www/cake_to_zf/library/Zend/Paginator.php(1060): of\doctrine\SqlQueryBuilderPaginatorAdapter->count()

.......

Suggested Fix:

Regex on line 64 in preg_match becomes '#([:a-zA-Z0-9_]{1})#'
Added was an "_" ...

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions