Bug #35003 [Com]: Warning: PDOStatement::fetch(): column 0 data was too large for buffer and was
| From: | lucassouza1 at gmail dot com | Date: | Tue, 06 Mar 2012 17:52:59 +0000 |
| Subject: | Bug #35003 [Com]: Warning: PDOStatement::fetch(): column 0 data was too large for buffer and was | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-168205@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=35003&edit=1
ID: 35003
Comment by: lucassouza1 at gmail dot com
Reported by: derick@php.net
Summary: Warning: PDOStatement::fetch(): column 0 data was
too large for buffer and was
Status: Closed
Type: Bug
Package: PDO related
Operating System: Linux - Fedora Core 1
PHP Version: 5.1.0RC3
Assigned To: wez
Block user comment: N
Private report: N
New Comment:
This issue still happens. I suppose it occurs because for example, an oracle varchar(10) column, is
filled with a multibyte char sequence like "maçã", it will overflow the buffer if a
charset like 'AL32UTF8' is provided in DSN
Previous Comments:
------------------------------------------------------------------------
[2011-11-04 15:53:21] tomasz at trejderowski dot pl
Sorry, not true. As reported in many similar bug reports (in year 2005 and 2007) and comments to
them (in year 2007, 2010 and 2011) this issue is STILL NOT FIXED. Up until end of 2011. At least not
for PHP + PDO + Oracle.
------------------------------------------------------------------------
[2005-10-28 17:02:53] tony2001@php.net
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
------------------------------------------------------------------------
[2005-10-27 18:59:24] vs at ez dot no
Note that the query result is wrong. There actually should have been 0 instead of "". This
is probably caused by the same problem.
------------------------------------------------------------------------
[2005-10-27 18:22:56] derick@php.net
Description:
------------
Strange warning when fetching data from an Oracle DB with PDO:
"column N data was too large for buffer and was truncated to fit it"
Reproduce code:
---------------
Environment:
============
PHP version: 5.1.0RC3
Server version: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
Client libraries: oracle-instantclient 10.1.0.4
OS: Fedora Core 1
How to reproduce:
=================
1. Execute the following query on your Oracle database:
CREATE TABLE pdotest (some_num INTEGER DEFAULT 0 NOT NULL);
2. Run the following script:
===============================================================================
<?
$query="SELECT data_default FROM user_tab_columns WHERE table_name='PDOTEST'";
$db = new PDO('oci:dbname=orcl', 'trunk', 'tiger');
$sth = $db->query( $query );
for( $i=0; ( $row = $sth->fetch( PDO::FETCH_ASSOC ) ); $i++ )
var_dump( $row );
echo "$i rows fetched.\n";
?>
===============================================================================
Expected result:
----------------
No warnings.
Actual result:
--------------
Warning: PDOStatement::fetch(): column 0 data was too large for buffer and was truncated to fit it
in /path/to/test.php on
line 7
array(1) {
["DATA_DEFAULT"]=>
string(0) ""
}
1 rows fetched.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=35003&edit=1