Edit report at https://bugs.php.net/bug.php?id=42765&edit=1
ID: 42765
Comment by: joachim dot havloujian at fauser dot ag
Reported by: sms at inbox dot ru
Summary: PDO ODBC: Long binary field in query result crashes
PHP ("Out of memory" error)
Status: Open
Type: Bug
Package: PDO ODBC
Operating System: Windows 2000 SP4
PHP Version: 5.2.4
Block user comment: N
Private report: N
New Comment:
I am getting the exact same error when fetching a long binary field from a Microsoft SQL Server.
The problem is that I rely on a PHP extension which supports MSSQL and the latest PHP build. Besides
ODBC there are none which are fully working with the newest PHP version. The extension PHP_MSSQL
isn't stated as deprecated but there is no official update. SqlSrv, the official driver from
Microsoft, does only support PHP up to 5.4 and it looks like there won't be any update in the
near future too.
That's why me and my coworkers would appreciate if this bug will be fixed soon.
Best regards.
Previous Comments:
------------------------------------------------------------------------
[2011-08-30 13:07:12] andreas at codejungle dot org
Bug is still existing in PHP 5.3.5 (os ubuntu natty)
The chunk workaround from skettler is working, but 22 000 queries for a 40 MB file is not optimal.
I tried also the php-ds-odbc_blob.patch, and the "Out of memory" error was gone,
but for some reasons, now the files are twice as large :(
------------------------------------------------------------------------
[2010-06-20 17:43:42] pajoye@php.net
hm, I don't maintain odbc.
However I would suggest SqlServer users on Windows to use SqlSrv instead, much more stable and
features complete.
------------------------------------------------------------------------
[2009-04-29 10:44:33] skettler@php.net
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 = ?
------------------------------------------------------------------------
[2009-04-25 14:50:26] jani@php.net
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] pajoye@php.net
Thanks for the patches and testing.
About compiling php on windows, take a look here:
http://wiki.php.net/internals/windows
------------------------------------------------------------------------
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
https://bugs.php.net/bug.php?id=42765
--
Edit this bug report at https://bugs.php.net/bug.php?id=42765&edit=1