ID: 26012 Updated by: [EMAIL PROTECTED] Reported By: boccara at netvision dot net dot il Status: Bogus Bug Type: MSSQL related Operating System: win2k SBS SP4 & Apache 2.0.47 PHP Version: 4.3.4RC2 New Comment:
The code was changed to fix a bug (#25777). This causes an other problem as there is a bug in the mssql library we use to build the extension. It has not been possible to gen an updated version of this library from Microsoft. Your code seamed to work fine with older versions of the extension, as all char and varchar fields was trimmed for trailing spaces. This is no longer the case and the fact that the library returns a single space when the column is empty and when the column contains a single space is not a problem with the php extension. For older versions of the extension it was not possible to store a value with spaces at the end, these would be trimmed out by the extension. The way the extension works now is the correct way (data is passed on from the database to the user ast it is). Previous Comments: ------------------------------------------------------------------------ [2003-10-29 12:07:23] boccara at netvision dot net dot il the bug 25777 tell that php did a trim of the data, and now it's fix. I did this request in the transact sql: select DATALENGTH(rtrim(a)) from test I got 0 for all lines. I also did select DATALENGTH(a) from test I also got 0 for all lines. I ONLY got a space caractere when I do the request with php. I think you should really take a look deeper in your code source. REM: the only way to avoid the problem with 4.3.4 rc2 is to fill the blank column with <NULL>. ------------------------------------------------------------------------ [2003-10-29 09:09:12] [EMAIL PROTECTED] I told you already: Bug #25777 was fixed in 4.3.4RC2.. ------------------------------------------------------------------------ [2003-10-29 03:08:16] boccara at netvision dot net dot il I agree with you, but why I only have this problem with the 4.3.4RC2 version ??????? I remind you that it works with 4.3.4RC1 and older version ! ------------------------------------------------------------------------ [2003-10-28 17:32:14] [EMAIL PROTECTED] The C API provided from Microsoft is the problem in this cse. An ampty column is returned as a single space and not as a true empty column (a string with length 0). It is not possible to see the difference between an empty column and a column with a single space. In this case it is a bug, but not in PHP! As stated before the PHP extensions sould not attempt to 'fix' data but just present them as is. ------------------------------------------------------------------------ [2003-10-28 15:38:02] boccara at netvision dot net dot il I made some change, and let me tell you that uou have a BIG bug. I returned to 4.3.4RC2 I made a request WITHOUT any RTRIM my data are defined as varchar(100) and NOT as char. I have located where there is a problem: query : select a from table test ( a is varchar(100)) when a is blank (without any caractere but not null ) it return the ascii code 32 wich is a space. if it is not a BUG I would like to understand what it is ??? ------------------------------------------------------------------------ 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/26012 -- Edit this bug report at http://bugs.php.net/?id=26012&edit=1