ID: 40607
User updated by: Joe at sofusion dot com
Reported By: Joe at sofusion dot com
-Status: Bogus
+Status: Closed
Bug Type: MSSQL related
Operating System: FREE BSD 6.0
PHP Version: 5.2.1
New Comment:
Thanks!!
Previous Comments:
------------------------------------------------------------------------
[2007-02-23 20:40:48] [EMAIL PROTECTED]
This is a normal browser feature. The browser will reduce the
whitespace (spaces, tabs new lines etc) to a single space. You could
replace each space with if you want to force two spaces.
------------------------------------------------------------------------
[2007-02-23 20:16:24] Joe at sofusion dot com
When I use the <pre></pre> tags, It does display the correct data. Is
this telling me that it is HTML that is concatinating the 2 spaces into
one?
Also you can use:
$Name = str_replace (' ', ':', $RT['Name']);
echo ' <p>Name2 = '.$Name . '</p>';
to see the 2 spaces.
When you duplicate the bug, do you have 2 spaces between the words in
your browser?
Thanks!!
------------------------------------------------------------------------
[2007-02-23 19:29:07] [EMAIL PROTECTED]
I'm unable to reproduce this (on Linux and WIndows with FreeTDS). Try
viewing the result outside the browser, use <pre></pre> or get the
length of the column to verify that you are getting the right results.
------------------------------------------------------------------------
[2007-02-23 16:18:14] Joe at sofusion dot com
Sorry, dont use # in TBL Name. USE THIS DB CODE AND PHP CODE TO TEST:
CREATE TABLE T1( Name varchar(255),
Number int )
INSERT INTO T1 VALUES('Two Spaces',1)
INSERT INTO T1 VALUES('One Spaces',2)
$sql = "SELECT Name FROM T1 WHERE Number = '1'";
$rs = mssql_query($sql);
while ($RT = mssql_fetch_array($rs))
{$Name= $RT['Name'];
//This should have 2 spaces in it like the DB
//But it only has one
echo ' <p>Name = '.$Name . '</p>';
}
------------------------------------------------------------------------
[2007-02-23 15:59:40] Joe at sofusion dot com
Description:
------------
When using mssql_fetch_arry and mssql_fetch_row, data returned that
contains 2 spaces has been concatinated to one space. Example:
Data returned should be "Two"' '' '"Spaces" (without quotes Two
Spaces)
But is returned as "Two"' '"Spaces" (without quotes -Two Spaces with
one space between)
FreeBSD WEBSERVER1.SOFUSION.local 6.0-RELEASE FreeBSD 6.0-RELEASE #0:
Thu Nov 3 09:36:13 UTC 2005
[EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC i386
Build Date Feb 22 2007 19:36:38
Configure Command './configure'
'--with-apxs=/usr/local/apache/bin/apxs' '--enable-versioning'
'--with-mssql=/usr/local' '--enable-libxml'
Library version FreeTDS
Reproduce code:
---------------
--MSSQL TABLE
CREATE TABLE #T1( Name varchar(255),
Number int )
INSERT INTO #T1 VALUES('Two Spaces',1)
INSERT INTO #T1 VALUES('One Spaces',2)
--PHP CODE
$sql = "select Name FROM Name_TBL WHERE Number = '1'";
$rs = mssql_query($sql);
$RT = mssql_fetch_array($rs);
$Name= $RT[Name'];
--This should have 2 spaces in it like the DB
--But it only has one
echo $Name
Expected result:
----------------
Two Spaces
--This has 2 spaces between the words.
Actual result:
--------------
Two Spaces
--This only hase 1 space between the words
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40607&edit=1