#13722 [Comment]: mssql text type returns only 255 char

From: Date: Sat, 27 Jul 2002 03:42:44 +0000
Subject: #13722 [Comment]: mssql text type returns only 255 char
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-15404@lists.php.net to get a copy of this message
ID: 13722 Comment by: systematic11@comcast.net Reported By: brendan@msu.edu Status: Open Bug Type: Sybase-ct (ctlib) related Operating System: Solaris 2.7 PHP Version: 4.0.6 New Comment: As of version 4.2.1, this issue has still not been corrected. Perhaps the problem lies with FreeTDS. Apparently neither the CT-Lib and DB-Lib for Sybase have no use for this property (MSSQL TEXT SIZE). If you must connect to MS SQL Server from PHP, I would suggest creating an include file that is included at the top of any PHP script that needs to access the MS SQL Server. Let the include file open a connection and call a query to "set textsize 65536" or to whatever limit you want. e.g. <?php // include file for MS SQL server $HOSTNAME = "SQLServer70"; $USERNAME = "sa"; $PASSWORD = "??"; $conn = mssql_pconnect($HOSTNAME, $USERNAME, $PASSWORD); if ($conn) { mssql_query("SET TEXTSIZE 65536"); mssql_select_db("whatever", $conn); } ?> Kelly Akins Previous Comments: ------------------------------------------------------------------------ [2002-05-21 11:52:51] vedran@quark.fsb.hr I have 4.1.2 and It's still not fixed. Running my .php that has a query "SELECT sometexttypefield FROM sometable"; with /usr/bin/php4 results in ;FATAL: emalloc(): Unable to allocate -2147483648 bytes. So it's definately some a bug and it probably can be solved if we know where this mailloc is called. ------------------------------------------------------------------------ [2001-10-19 13:01:39] brendan@msu.edu Then there still exists a problem with the sybase-ct support for mssql, in that there is no way to specify a TEXTSIZE that allows PHP to support MSSQL 7.0's TEXT type. Is there not? ------------------------------------------------------------------------ [2001-10-19 12:55:06] fmk@php.net When you use subase-ct and FreeTDS you are not using the mssql extension, and all the settings in the ini file for mssql is not used. The settings you are refering to works when you use the mssql extension, though that extension is only available on Win32 platforms. ------------------------------------------------------------------------ [2001-10-17 22:19:34] brendan@msu.edu Built with: (edited config template to remove uneccessary sybase libs that are not included with freetds -lsybtcl -lcomn -lcs ) ./configure --prefix=/home/username/php --with-sybase-ct=../../freetds --with-pgsql=/home/postgres/pgsql --with-apache=../../apache_1.3.22 -enable-track-vars --with-imap=../../imap make make install FreeTDS verified functional using test scripts, and functional through Perl to same DB that PHP is connected to. Problem: Text type returns only first 255 chars Expected: >540 chars (can retrieve through FreeTDS/Perl) php.ini contains uncommented lines: mssql.textlimit=8192 mssql.textsize=8192 Query to MSSQL Server: SELECT @@TEXTSIZE Returns: 4096 Expected: 8192 (due to php.ini settings?) Query to MSSQL Server: SET TEXTSIZE 8192 SELECT @@TEXTSIZE Returns: 8192 Expected: 8192 Suspect: php.ini not being read But: other setting changes show up on php_info() Suspect: mssql settings not being read properly from php.info? Query to MSSQL Server: SET TEXTSIZE 8192 SELECT our_col FROM our_table; Returns: only first 255 chars of our_col Expected: all 500+ chars in field ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=13722&edit=1

« previous php.bugs (#15404) next »