>
> If you search the archives, you might find that I wasn't happy to have
> PARAM_FLOAT without some kind of PARAM_NUMERIC. You're basically saying
> that my point was irrelevant and out of scope. Aww, thanks ;)
>

I'm sorry my update sounded like I was ignoring your feedback. Another
change was meant to address your concerns about people misusing
PARAM_FLOAT. Most drivers won't force casts on these values, so if you pass
a string with this type it will work the same as if you used PARAM_STR.
Isn't that the foot-gun you've highlighted?

Maybe we should approach this another way: is there anything that could be
changed with the RFC to change your mind about it? If not, this
conversation is a waste of time for both of us.

> For example, I'm looking into an approach that would bring real prepared
> > statements to pdo_dblib:
> > https://bugs.php.net/bug.php?id=74592
>
> No offence, but those look like pretty ugly hacks and poor attempts to
> overcome what's a huge limitation of the underlying library.
>

Microsoft actually recommended this solution to my team. We've done only
informal testing, but initial results have been positive.

I understand the power of legacy, since I'm running one very legacy
> project myself, but please do yourself a favour and help out the
> transition away from something as poor as dblib rather than trying to
> build your own custom prepared statement emulator. Maybe your skills and
> enthusiasm could be helpful to the pdo_sqlsrv team and the driver could
> become core at some point?
>

I'm doing this to help my team transition off pdo_dblib. Parameters tagged
with the wrong types are going to make it hard for us to migrate code. I'm
considering #74592 as a general improvement, separately, in my capacity as
pdo_dblib's maintainer, since it's not practical for everyone to move off
it.

Since your driver uses emulated prepares, I'd expect you having a new
> execution plan regardless. At least for current master, which is the RFC
> target.


I meant if the driver is ever changed to one that uses real prepared
statements.

Thanks,
Adam

Reply via email to