ID: 39483
User updated by: suhachov at gmail dot com
Reported By: suhachov at gmail dot com
Status: Open
Bug Type: PDO related
Operating System: Linux
PHP Version: 5.2.0
New Comment:
Oh! I've forgot to note: when I compile pdo_mysql with 5.0 libraries, I
get this error. When I compile it with 4.1 libraries, I get another
error, but at the same place.
Previous Comments:
------------------------------------------------------------------------
[2006-11-12 18:05:35] suhachov at gmail dot com
I've tried it with:
5.0.26
4.1.15
------------------------------------------------------------------------
[2006-11-12 17:56:36] [EMAIL PROTECTED]
which version of MySQL are you using?
------------------------------------------------------------------------
[2006-11-12 16:23:41] suhachov at gmail dot com
Description:
------------
It seems that PDO sql parser is broken and tries to look for
placeholders within string constants.
$dbh = new PDO('mysql:...','...','...');
$sth = $dbh->prepare('SELECT my_udf(\'\0:D\0\'),?');
$sth->execute(array(1));
This code triggers an error:
PDO::prepare(): SQLSTATE[HY093]: Invalid parameter number: mixed named
and positional parameters
And I can't replace string constant with placeholder, because MySQL
doesn't allows to use placeholders with UDFs.
Reproduce code:
---------------
see above.
You even don't need any installed UDF.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39483&edit=1