Jira issue originally created by user mcurcio:
It seems as though the query parameters start from '1' (?0 throws an exception), whereas the Query#_prepareParams function starts counting from 0.
$query = $this->em->createQuery('SELECT s FROM Session s WHERE s.id = ?1');
$session = $query->execute(array($id));
SELECT s0.id AS id0, s0_.data AS data1, s0_.created AS created2, s0_.accessed AS accessed3 FROM Session s0_ WHERE s0.id = ?
Warning: Invalid argument supplied for foreach() in Doctrine/ORM/Query.php on line 222
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1' in Doctrine/DBAL/Connection.php:602
#0 Doctrine/DBAL/Connection.php(602): PDO->query('SELECT s0_.id A...')
#1 Doctrine/ORM/Query/Exec/SingleSelectExecutor.php(42): Doctrine\DBAL\Connection->execute('SELECT s0_.id A...', Array)
#2 Doctrine/ORM/Query.php(198): Doctrine\ORM\Query\Exec\SingleSelectExecutor->execute(Object(Doctrine\DBAL\Connection), Array)
#3 Doctrine/ORM/AbstractQuery.php(461): Doctrine\ORM\Query->_doExecute(Array)
#4 classes/SessionManager.php(35): Doctrine\ORM\AbstractQuery->execute(A in /var/www/tec-expo.com/development/libraries/Doctrine/DBAL/Connection.php on line 602
Comment created by romanb:
is the same as this:
$query->execute(array(0 => $id));
Hence the error. We should probably check for isset($params) in execute() and throw an exception in this case.
To get it to work, either use:
$query->execute(array(1 => $id));
$query->execute(); // or $query->getResult()
Comment created by mcurcio:
While I have since discovered the "colon-mapping" scheme, for the users who would prefer this mapping method, why not allow the zero position? Starting the count from zero would allow the simple execute() mechanism that I was trying, and while not very clear, might be useful for certain cases.
Fixed now. A meaninfgul exception is thrown.
Starting from 0 would be unintuitive as even PDO starts to count from 1.
Issue was closed with resolution "Fixed"
Imported 1 attachments from Jira into https://gist.github.com/795011b7186bd236bcb0