ID: 26315 Comment by: webmaster at groupphotographers dot com Reported By: webmaster at cbre dot fr Status: Bogus Bug Type: MSSQL related Operating System: Windows 2000 Server PHP Version: 4.3.4 New Comment:
THIS most DEFINITELY is a BUG! I have built a VERY LARGE DB driven PHP site. In many places, I check to see if the DB field was empty or not. Before, Fetch always returned an empty string or a NULL, it doesn't matter which because it evaluated to a FALSE, and now it returns a space character which evaluates to TRUE! This is quite nasty. I'm going to add this ME TOO comment because it hasn't been fixed yet, and it really needs to be...PLEASE! Previous Comments: ------------------------------------------------------------------------ [2004-02-26 01:47:10] dneilsen at iprimus dot com dot au I too have encountered this bug with windows 2003 server using version 4.3.4 of php. Where as previously my empty varchar fields where returned as '' they are now returned as ' ' which has caused several of my applications to fail. ------------------------------------------------------------------------ [2003-12-01 20:29:11] php at electricsurfer dot com THIS IS A BUG new to 4.3.4. Introduced by removing the auto-trimming While the change is a good one, if '' is in the DB, mssql_fetch_* should NOT return ' ' IN DB: '' (empty string) Returned by mssql_fetch_assoc(): ' ' (single space) ------------------------------------------------------------------------ [2003-11-21 11:33:13] jabberwocky at ibplanet dot com also, instead of returning 0 it is now also returning a space if there is a 0 in the DB ------------------------------------------------------------------------ [2003-11-21 07:56:06] w1lz0r at barrysworld dot net This is a bug, as there is no space in the database. The change from not auto-trimming is a good one IMO, but the behaviour of empty fields is different now. Any character field which is empty (e.g. '') and not null will be returned as a space. My application no longer worked correctly after the 4.3.4 change and I have to now manually do (if ($field==' ') $field='';). This is a major change from previous versions and a bug as the mssql functions should return what is IN the database. Maybe this is the reason why the rtrim was done in the past? Please re-evaluate. ------------------------------------------------------------------------ [2003-11-19 09:42:17] [EMAIL PROTECTED] Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php mssql extension no longer automatically trims varchar fields ------------------------------------------------------------------------ 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/26315 -- Edit this bug report at http://bugs.php.net/?id=26315&edit=1