ID: 42765
Updated by: [email protected]
Reported By: sms at inbox dot ru
Status: Feedback
Bug Type: PDO related
Operating System: Windows 2000 SP4
PHP Version: 5.2.4
Assigned To: pajoye
New Comment:
Confirmed not fixed with latest PHP 5.2 snapshot VC6 x86 Thread Safe
(2009-Apr-27 00:00:00):
Fatal error: Out of memory (allocated 262144) (tried to allocate
4294967295 bytes)
Current workaround is getting the length of the image, retrieving
chunks of 4096 characters and putting them back together in PHP.
SQL-Queries for this workaround look like these:
SELECT DATALENGTH(imagefield) AS imagelength FROM imagetable WHERE
imageid = ?
SELECT CAST(SUBSTRING(imagefield, offset, length) AS VARCHAR(4096))
AS imagechunk FROM imagetable WHERE imageid = ?
Previous Comments:
------------------------------------------------------------------------
[2009-04-25 14:50:26] [email protected]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2008-10-03 21:41:35] [email protected]
Thanks for the patches and testing.
About compiling php on windows, take a look here:
http://wiki.php.net/internals/windows
------------------------------------------------------------------------
[2008-10-03 15:34:14] jeffreybolle at gmail dot com
I had the same problem recently. I'd like to thank csa for the great
source code patch. Recompiling the source under windows wasn't easy and
it took me many hours to piece together all the software and libraries
required. The result was a fixed extension that can access large blob
files, this has been tested under Windows Vista 32bit.
I thought I'd post a link for the compiled extension (PHP 5.2.6) in
case any other windows users want to make use of this fix without going
through the hassle of learning how to compile PHP from source.
http://s3.paramorphicdesigns.com/random/php/php_pdo_odbc.dll
If there are any problems feel free to contact me at
[email protected]
Jeffrey
------------------------------------------------------------------------
[2008-06-10 09:08:40] csa at dside dot dyndns dot org
By the way feel free to contact me on [email protected] if you have
problems with this patches.
------------------------------------------------------------------------
[2008-06-10 09:06:02] csa at dside dot dyndns dot org
I got the same problem on Linux (64bit, php 5.2.6). Actually, the
problem is existing in all configurations. I have take a brief look
through php sources. The bug is in pdo_odbc code and affects all
architectures and underlying database engines.
Actually it is in 'ext/pdo_odbc/odbc_stmt.c', function
'odbc_stmt_describe'. The 'displaysize' variable is expected to contain
estimated size of the column. This could be a negative number if BLOB or
TEXT data is stored (since the record sizes could seriously vary).
However, later in this function the check on data size does not consider
negative numbers. This causes the described behavior. This patch solves
problem for me:
http://dside.dyndns.org/projects/patches.dir/php-ds-odbc_blob.patch
A Linux user trying to access MSSQL over FreeTDS may be interested in
the following patches as well:
http://dside.dyndns.org/projects/patches.dir/freetds-ds-odbc.patch
http://dside.dyndns.org/projects/patches.dir/php-ds-odbc64.patch
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/42765
--
Edit this bug report at http://bugs.php.net/?id=42765&edit=1