ID: 35830
User updated by: nate-php at seekio dot com
Reported By: nate-php at seekio dot com
Status: Open
Bug Type: PDO related
-Operating System: Ubuntu 5.10
+Operating System: Debian 3.1 Sarge
PHP Version: 5.1.1
New Comment:
Oops, that create table statement should read:
create table nate.testdb (a int, b varchar(50))
(I had cut and pasted in the wrong schema)
Previous Comments:
------------------------------------------------------------------------
[2005-12-28 20:31:06] nate-php at seekio dot com
Description:
------------
In PHP 5.1.1 bind variables no longer seem to work with the ODBC PDO
driver connecting to DB2. The same code that worked fine in 5.1.0 and
previous now throws an exception in 5.1.1 and php5.1-200512222130 CVS
snapshot:
The query I'm running is:
insert into nate.testdb values (?, ?)
The table is specified as:
create table tb.testdb (a int, b varchar(50))
Exception at line 13 of file testdb.php: SQLSTATE[22005]: Error in
assignment: -99999 [IBM][CLI Driver] CLI0112E Error in assignment.
SQLSTATE=22005 (SQLExecute[-99999] at
/usr/local/src/php-5.1.1/ext/pdo_odbc/odbc_stmt.c:133)
I looked up the db2 error code CLI0112E and this is what it said:
CLI0112E Error in assignment.
Explanation:
The data sent for a parameter or column was incompatible with the data
type of the associated table column.
User Response:
Respecify the output binding through SQLBindCol or SQLGetData or the
input binding through SQLSetParam or SQLBindParameter.
Reproduce code:
---------------
try {
$db = new PDO('odbc:sample', 'webdb', 'xxx');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connect failed: " . $e->getMessage() . "\n");
}
try {
$query = "insert into nate.testdb values (?, ?)";
$sth = $db->prepare($query);
$sth->execute(array(1, 'foobar'))
} catch (Exception $e) {
die("Exception at line " . $e->getLine() . " of file " .
$e->getFile() . ": " . $e->getMessage() . "\n");
}
Expected result:
----------------
a row is inserted with the values of 1, and foobar in the a and b
columns
Actual result:
--------------
Exception at line 13 of file testdb.php: SQLSTATE[22005]: Error in
assignment: -99999 [IBM][CLI Driver] CLI0112E Error in assignment.
SQLSTATE=22005 (SQLExecute[-99999] at
/usr/local/src/php-5.1.1/ext/pdo_odbc/odbc_stmt.c:133)
and no row is inserted.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35830&edit=1