ID: 42765
Comment by: carlton dot whitehead at cebesius dot com
Reported By: sms at inbox dot ru
Status: Open
Bug Type: PDO related
Operating System: Windows 2000 SP4
PHP Version: 5.2.4
New Comment:
I encountered this bug with this setup:
Windows Server 2003 SP2 32bit
IIS 6
PHP 5.2.4
MS SQL Server 2005 Express SP2
PDO ODBC reproduce code:
---------------
<?php
// lobtestPdoOdbc.php
try
{
$db = new PDO('odbc:fmarchive_mssql', 'change', 'me');
$stp = 'SELECT attdata FROM fm_faxin_att WHERE id =
119085913400004
AND attid = 0'; // statement to prepare
$ps = $db->prepare($stp);
$execResult = $ps->execute();
var_export($execResult, true);
}
catch (PDOException $e)
{
die($e->getMessage());
}
?>
Expected result:
----------------
output to browser: true
Actual result:
--------------
*Fatal error*: Out of memory (allocated 262144) (tried to allocate
4294967295 bytes) in *C:\Inetpub\wwwroot\FMarchive\lobtestPdoOdbc.php*
on line *9*
plain ODBC reproduce code:
--------------------------
<?php
// lobtestOdbc.php
$res = odbc_connect('fmarchive_mssql', 'change', 'me');
if (!$res) { die ('failed to connect'); }
$stp = 'SELECT attdata FROM fm_faxin_att WHERE id = 119085913400004 AND
attid = 0'; // statement to prepare
$ps = odbc_prepare($res, $stp);
if (!$res) { die ('failed to prepare statement'); }
$execResult = odbc_execute($ps);
echo var_export($execResult, true);
?>
Expected result:
----------------
output to browser: true
Actual result:
--------------
output to browser: true
(this indicates odbc_execute worked correctly)
Previous Comments:
------------------------------------------------------------------------
[2007-09-26 11:00:15] sms at inbox dot ru
Description:
------------
With PDO ODBC I can't get long binary data from Microsoft SQL Server
(image and varbinary(MAX) fields). PDO->query, PDOStatement->execute()
always result in PHP "Out of memory" error, even if output contains no
rows.
The same queries work fine with ODBC unified extension.
Reproduce code:
---------------
<?php
$dbh=new PDO('odbc:Driver={SQL
Server};Server=localhost;Database=test','user','pass');
$dbh->query("select [nbin] from [atts] where [id]=1");
?>
Expected result:
----------------
No PHP fatal errors
Actual result:
--------------
PHP Fatal error: Out of memory (allocated 262144) (tried to allocate
4294967295 bytes) in D:\Web\test.php on line 3
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42765&edit=1