Edit report at https://bugs.php.net/bug.php?id=63949&edit=1
ID: 63949
User updated by: toebs at pubsqrd dot com
Reported by: toebs at pubsqrd dot com
Summary: selects on long varchar fields returns empty with
PDO ODBC
Status: Open
Type: Bug
Package: PDO related
Operating System: Amazon Linux
PHP Version: 5.4.10
Block user comment: N
Private report: N
New Comment:
Typo in the email address. Correct email is "[email protected]".
Previous Comments:
------------------------------------------------------------------------
[2013-01-09 00:27:02] toebs at pubsqrd dot com
Description:
------------
In short, it looks like selects on varchars columns which are long (some
indeterminate value, 1000 certainly qualifies) fail with PDO via ODBC.
The same query works with the following methods;
1. PDO using mysql
2. unixODBC directly (via isql)
3. vsql (the Vertica native command line client)
4. PHP ODBC
The error given is that column binding has not occurred. This is odd - note in
the script I have deliberately used fetchColumn() to avoid the need for column
binding, in an effort to avoid this error.
This problem was found in 5.3.19 and also in 5.4.9.
Test script:
---------------
create table tobytest
(
string_short varchar(50),
string_long varchar(1000)
);
insert into tobytest (string_short, string_long) values ('short', 'long');
<?php
$db_connect = new PDO( "odbc:pubsquared", "dbadmin", "big science" );
$db_connect -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$q = $db_connect->prepare( "select string_long from tobytest" );
$q->execute();
$r = $q->fetchColumn();
print $r;
?>
Expected result:
----------------
[root@ip-1-1-1-1 ~]# php test4.php
long
[root@ip-1-1-1-1 ~]#
Actual result:
--------------
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[SL010]:
<<Unknown error>>: 0 [unixODBC][Driver Manager]SQLBindCol returned SQL_ERROR on
a attempt to bind a internal buffer (SQLFetchScroll[0] at
/builddir/build/BUILD/php-5.4.9/ext/pdo_odbc/odbc_stmt.c:537)' in
/root/test4.php:8
Stack trace:
#0 /root/test4.php(8): PDOStatement->fetchColumn()
#1 {main}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=63949&edit=1