Re: PDO bindValue ORDER BY

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Technically, bound parameter is expecting a value, such as
    WHERE ID=:id
However, ORDER BY is followed by a field name, such as
   ORRDER BY ID
So I don't think it should work.

If it does work, then it is a sign that the database driver is not
really preparing the statement (as it should for performance reason),
but it is just substituiting values to compose a SQL (just for your
convenience).

On 10/31/08, Matthew Peltzer <goochrules@xxxxxxxxx> wrote:
> 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@xxxxxxxxxxxxxx
>
>
>  --
>  PHP Database Mailing List (http://www.php.net/)
>  To unsubscribe, visit: http://www.php.net/unsub.php
>
>

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux