#38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
From: sfox@php.net Date: Fri, 13 Feb 2009 19:24:48 +0000 Subject: #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field References: 1 Groups: php.doc.bugs Request: Send a blank email to doc-bugs+get-1857@lists.php.net to get a copy of this message
ID: 38805
Updated by: sfox@php.net
Reported By: gkrajci at arescorporation dot com
Status: Analyzed
Bug Type: Documentation problem
Operating System: Windows NT PBMA-WB2 5.2 build 37
PHP Version: 5.1.6
New Comment:
On further analysis, it seems SET_TEXTSIZE doesn't work even when you
set it explicitly.
I have a working fix for this, but no telling when it'll get into CVS
as I have to install an entirely new second build environment for PHP
5.3 before I can commit it.
The documentation comment still holds, and setting the textsize works
for all related extensions except pdo_dblib (AKA pdo_mssql.dll).
Best workaround: use PDO_ODBC to connect to MSSQL Server instead.
//$dsn = 'mssql:host=MYBOX;dbname=testdb';
$dsn = 'odbc:DRIVER={SQL Server};SERVER=MYBOX;DATABASE=testdb;';
HTH
- Steph
Previous Comments:
------------------------------------------------------------------------
[2009-02-13 11:01:02] janpolsen at gmail dot com
I have done some various testing and to me it still seems that PHP's
PDO-class is the problem.
The following is the output from my script:
Zend Framework
- WITHOUT TEXTSIZE 20480
- PHP strlen() : 4096
- MSSQL2005 datalength(): 12418
- WITH TEXTSIZE 20480
- PHP strlen() : 4096
- MSSQL2005 datalength(): 12418
PHP PDO-class
- WITHOUT TEXTSIZE 20480
- PHP strlen() : 4096
- MSSQL2005 datalength(): 12418
- WITH TEXTSIZE 20480
- PHP strlen() : 4096
- MSSQL2005 datalength(): 12418
PHP mssql_*()
- WITHOUT TEXTSIZE 20480
- PHP strlen() : 12418
- MSSQL2005 datalength(): 12418
Everything fails except PHP's mssql-* functions and I assume that
Zend_Db fails because it uses PHP's PDO-class.
This test was run with:
PHP 5.2.6 (cli) (built: May 2 2008 18:02:07)
mssql
- MSSQL Support => enabled
- Active Persistent Links => 0
- Active Links => 0
- Library version => 7.0
pdo_mssql
- PDO Driver for MSSQL DB-lib => enabled
- Flavour => MSSQL_70
Zend Framework 1.7.4 (r13879)
If needed then the script for the output can be found at
http://2p0.dk/phps/test_4096.phps
------------------------------------------------------------------------
[2008-12-09 17:21:59] sfox@php.net
This is an aspect of PDO design that should be better documented, as
confirmed in privmail with Wez earlier today.
There shouldn't be any INI settings in PDO drivers at all, the whole
idea being to allow more portable code. Things like field length should
be set directly using the RDBMS API.
The original MSSQL extension simply wraps a SET TEXTSIZE query during
its connection routine when the INI directive mssql.textsize is set. To
the database engine, there's no difference between that query being made
from a PHP script or from the extension/C wrapper.
So, the upshot is, this bug is not a bug, and I'm passing it to the
docs team.
------------------------------------------------------------------------
[2008-12-09 15:08:11] mcleod at spaceweb dot nl
Also on:
PHP 5.2.6 (cli) (built: May 2 2008 18:02:07)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
Using Zend_DB with mssql driver!
On windows XP Pro SP 3 in command line php script.
Have set the mssql textlimit and textsize in php.ini, but indeed, these
do not help.
------------------------------------------------------------------------
[2008-11-29 01:00:00] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2008-11-25 22:12:16] ASDF_TRASHED at YAHOO dot COM
why doesnt somebody fix this shit.
what the hell.
------------------------------------------------------------------------
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/38805
--
Edit this bug report at http://bugs.php.net/?id=38805&edit=1
Thread (9 messages)
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- Unknown Message
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Ana->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- #38805 [Com]: PDO Truncates Text from SQL Server Text Data Type Field
- Bug->Doc #38805 [Asn->Opn]: PDO Truncates Text from SQL Server Text Data Type Field
- Doc #38805 [Opn->Tbd]: PDO Truncates Text from SQL Server Text Data Type Field
| « previous | php.doc.bugs (#1857) | next » |
|---|