ID:               34414
 Updated by:       [EMAIL PROTECTED]
 Reported By:      Roland dot Bouman at interaccess dot nl
-Status:           Open
+Status:           Bogus
 Bug Type:         PDO related
 Operating System: Win XP Professional SP2
 PHP Version:      5.1.0RC1
 New Comment:

Please do not submit the same bug more than once. An existing
bug report already describes this very problem. Even if you feel
that your issue is somewhat different, the resolution is likely
to be the same. 

Thank you for your interest in PHP.




Previous Comments:
------------------------------------------------------------------------

[2005-09-07 22:40:02] Roland dot Bouman at interaccess dot nl

Sorry, the last line of my reproduce code should read:

print_r($ins->errorInfo()); //generate output

not:

print_r($ins->errorInfo()); --generate output

------------------------------------------------------------------------

[2005-09-07 22:37:29] Roland dot Bouman at interaccess dot nl

Description:
------------
A PDO_MYSQL prepared INSERT statement fails to execute. The driver
specific error message reports the value of the variable bound to the
parameter as an unknown column. 

The error message suggests that the actual statement sent to mysql
contains a syntax error because of some flaw in the way the parameter
value is put into the sql statement

No such behaviour is observed in a prepared SELECT statement. An
equivalent INSERT statement with the quoted parametervalues hardcoded
into the insert does execute as expected.

Reproduce code:
---------------
<?php
$pdo = new PDO('mysql:host','usr','pwd');
$pdo->query('use test');
$pdo->exec('create table tmp(
    id int auto_increment primary key
,   flag enum(\'TRUE\',\'FALSE\')
,   name varchar(10))');
$ins = $pdo->prepare('insert into  test.tmp(
    flag
,   name) values (
    :flag
,   :name)');
$ins->bindParam(':flag',$flag,PDO_PARAM_STR);
$ins->bindParam(':name',$name,PDO_PARAM_STR,20);
$flag = 'TRUE';
$name = 'some name';
$ins->execute();   
print_r($ins->errorInfo()); --generate output
?>

Expected result:
----------------
Array ( [0] => ) 

or 

Array ( [0] => 00000 ) 

indicating successfull execution of the statement at the MySQL server.

Actual result:
--------------
Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'TRUE' in 'field
list' ) 


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=34414&edit=1

Reply via email to