I just revied the ParamValues docs, and it reminded me of a question I had
WRT ParamValues and prepared statements.
The docs say:
It is possible that the values in the hash returned by "ParamVal-
ues" are not exactly the same as those passed to bind_param() or
execute(). The driver may have modified the values in some way
based on the TYPE the value was bound with. For example a floating
point value bound as an SQL_INTEGER type may be returned as an
integer.
Now, in DBD::mysql I change the behaviour of bind_param() depending on
whether server-side prepared statements are enabled. If they are
enabled there is no quoting of the string passed into bind_param() because
it gets passed directly to mysql_bind_params() at execute time, but when
server-side prepared statements are disabled I call quote() based on the
bind type and tuck that away to be used at execute time. This obviously
keeps the driver from having to requote bind params every time execute is
called.
But all of this means that strings in $sth->{ParamValues} vary depending
on whether server-side prepare is enabled. If enabled you get the string
you passed it, if disabled you get the quoted string back.
Is this acceptable? Or would you rather see it work differently?
Rudy
Ps. I am reading the subversion book, and it looks pretty simple ;)