Hi Adam,

> From: Adam Baratz [mailto:adambar...@php.net] 
> Sent: Thursday, May 18, 2017 3:23 PM

>> That's why I think, it will be great to have a special type like
>> PDO::PARAM_AUTO and a config flag to set it as default instead of PARAM_STR.

> The risk with this is queries could lose portability between drivers. There 
> are differences in the level of information each one can get from the DB 
> server, and different costs associated with asking.
> I think the right model is to have PDO types map directly to SQL types. That 
> said, the code and documentation don't take a strong stance on how types 
> should work. And there's not a lot of agreement in the community, at least as 
> indicated by discussions on this list.

Yes, agree about portability. But from other side, it will be a great benefit 
for drivers that supports server side prepares, not just emulation.

Maybe even a better way is just to change default param type from PARAM_STR to 
PARAM_AUTO in bindValue family routines, without any driver options or configs.
So if drivers supports server prepares with type hinting, OK: treat it better, 
if not, push it as a string like is now.
Anyway, there is not a documented standard what driver should do when you pass 
something like bindValue('param', '', PDO::PARAM_BOOL) or bindValue('param', 
't', PDO::PARAM_BOOL) or bindValue('param', '0', PDO::PARAM_BOOL)
In case if data type is specified, then force it, as dictate the php code.

What do you think?

> I agree with Matteo that param hooks might provide a better solution to the 
> specific problem you're describing.

I'm using this way, just now. But I don’t like the way that code
->BindValue('bool_param', false);
give me internally in C driver code a string type ZVAL with an empty value in 
it, ie transform it to a string ZVAL because of default string type.

Yep, forcing it to be boolean like ->BindValue('bool_param', false, 
PDO::PARAM_BOOL); works.
Just I want do not care at all about param data types as driver know expected 
types better than me.



-
D.


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

Reply via email to