Bug #42765 [Com]: PDO ODBC: Long binary field in query result crashes PHP ("Out of memory" error)

From: Date: Tue, 30 Aug 2011 13:07:12 +0000
Subject: Bug #42765 [Com]: PDO ODBC: Long binary field in query result crashes PHP ("Out of memory" error)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-163150@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=42765&edit=1 ID: 42765 Comment by: andreas at codejungle dot org 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 related Operating System: Windows 2000 SP4 PHP Version: 5.2.4 Block user comment: N Private report: N New Comment: 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 :( Previous Comments: ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ [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 Jeffreybolle@gmail.com Jeffrey ------------------------------------------------------------------------ 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

« previous php.bugs (#163150) next »