Bug #67437 [Com]: error processing nvarchar(max) types from SQL Server with MS ODBC Linux Driver
Edit report at https://bugs.php.net/bug.php?id=67437&edit=1
ID: 67437
Comment by: sinasalek at gmail dot com
Reported by: laurent dot mirguet at aufeminin dot com
Summary: error processing nvarchar(max) types from SQL Server
with MS ODBC Linux Driver
Status: No Feedback
Type: Bug
Package: ODBC related
Operating System: Linux
PHP Version: 5.5.13
Block user comment: N
Private report: N
New Comment:
Using PHP 5.6.5 on Ubuntu Linux 64bit. and still experiencing the same problem.
Previous Comments:
------------------------------------------------------------------------
[2015-02-15 04:22:21] php-bugs at lists dot php dot net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
------------------------------------------------------------------------
[2015-02-06 18:08:10] ab@php.net
@laurent, please check the current 5.5+ tree.
Thanks.
------------------------------------------------------------------------
[2015-02-03 16:26:41] giodev at panozzo dot it
Related To: Bug #68964
------------------------------------------------------------------------
[2014-10-13 09:19:39] stefan dot thuering at gmail dot com
I have a similar problem on Windows 2008 Server.
Running odbc_exec on a nvarchar(max) col in MSSQL crashes PHP 5.5
This was working on PHP 5.4
Error message:
-------------------------
PHP Fatal error: Out of memory (allocated 786432) (tried to allocate 4294967293 bytes) in
....dbFunction.inc.php on line 27
-------------------------
When the field is nvarchar(4000) everything works.
http://stackoverflow.com/questions/17703180/php-odbc-error-tried-to-allocate-4294967293-bytes
------------------------------------------------------------------------
[2014-06-13 10:44:51] laurent dot mirguet at aufeminin dot com
Description:
------------
When using the Microsoft ODBC driver for SQL Server on Linux (see http://msdn.microsoft.com/en-us/library/hh568451%28v=sql.110%29.aspx)
Calling odbc_result() on an nvarchar(max) type results in a memory exhausted error as PHP is trying
to allocate 4Go of RAM (the max size of an nvarchar type).
This seems to happen in the file ext/odbc/php_odbc.c line 2148 :
- the type nvarchar(max) is not recognized in the code, so the switch falls back in the default case
- and the value of result->values[field_ind].vallen is 4Go
I don't know whether the problem comes from the PHP code, the unixODBC code, or the Microsoft
code...
Test script:
---------------
Any odbc_result() call on a non-empty nvarchar(max) type should do the trick and generate a memory
exhauted error.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=67437&edit=1
Thread (6 messages)