On 04.10.2016 at 16:20, Matteo Beccati wrote:

> Hi,
> 
> On 04/10/2016 16:15, Adam Baratz wrote:
>>>
>>>>> 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.
>>
>>
>> That's correct, but you can enable emulated prepares for whichever driver.
>> A less confusing example might've been inserting :null into a nullable INT
>> column and verifying that NULL was stored.
> 
> That's not ture. If memory serves, emulated prepares are only available
> supported by the mysql and pgsql pdo drivers.

If that is so, the docs would be in error, e.g.
<http://www.php.net/manual/en/pdo.setattribute.php> states:

| PDO::ATTR_EMULATE_PREPARES […]
| Use this setting to force PDO to either always emulate prepared
| statements (if TRUE), […]

-- 
Christoph M. Becker

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

Reply via email to