PDO bindValue ORDER BY
| From: | Matthew Peltzer | Date: | Fri, 31 Oct 2008 16:58:07 +0000 |
| Subject: | PDO bindValue ORDER BY | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-45577@lists.php.net to get a copy of this message | ||
Are pdo bound parameters within an ORDER BY clause broken in php 5.2.5?
I find that in php 5.2.6 this works as expected:
<?php
$sql = 'SELECT * FROM
table ORDER BY :sort';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':sort', $sort, PDO::PARAM_STR);
$stmt->execute();
print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
?>
but under php5.2.5 the ORDER BY clause silently fails. Also,
parameters bound to SELECT or WHERE or LIMIT clauses function
correctly, but ORDE BY still has no effect. If I remove the
"$stmt->bindValue(':sort', $sort, PDO::PARAM_STR);" line or the "ORDER
BY :sort" I get a "number of bound variables does not match number of
tokens" error.
So it appears the parsing mechanism is funcitoning, but what ever is
responsible for binding to ORDER BY is not.
I've looked in bug reports and the change logs, but did not find a
explicit reference to this issue.
--
-- Matthew Peltzer
-- gooch@goochrules.net