On 04.10.2016 at 01:13, Lester Caine wrote:

> On 03/10/16 22:20, Rowan Collins wrote:
>
>> On 3 October 2016 19:11:52 BST, Adam Baratz <adambar...@php.net> wrote:
>>
>>>> Test script:
>>>> ---------------
>>>> $db = new PDO(...);
>>>>
>>>> $stmt = $db->prepare("SELECT :null");
>>>> $stmt->bindValue(':null', null, PDO::PARAM_NULL);
>>>> $stmt->execute();
>>>> var_dump($stmt->fetchAll()); // NULL
> 
>> Well, I'm pretty sure Postgres won't be affected either way, because its 
>> type system is such that you can't prepare a query where the types of 
>> parameters can't be decided yet. A query like this simply gives an error.
> 
> Firebird, oracle and mysql would have exactly the same problem. The
> prepare SQL script is invalid so prepare fails. If it works for dblib
> then I would consider THAT the bug. Parameters can only be assigned to
> fields identified in the prepared SQL. In this case :null has nothing to
> identify what it is to be prepared to populate.

This is about *emulated* prepares, and AFAIK that means that the
database will never see the prepared statement.

-- 
Christoph M. Becker


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to