PHP 4.0 Bug #6527 Updated: empty field returned are not empty

From: Date: Wed, 13 Dec 2000 10:30:26 +0000
Subject: PHP 4.0 Bug #6527 Updated: empty field returned are not empty
Groups: php.dev 
Request: Send a blank email to php-dev+get-41141@lists.php.net to get a copy of this message
ID: 6527 Updated by: joey Reported By: lenar@city.ee Status: Closed Bug Type: Sybase-ct (ctlib) related Assigned To: Comments: Just to document: In the Sybase documentation manual "SQL Reference: Datatypes and System Tables", on page 7-27: The empty string ("") is treated as a single space. In *char* and *nchar* *not null* columns, the result is a (column-length) field of spaces. You can get around this by adding rtrim(field) in place of field in the select clause. Previous Comments: --------------------------------------------------------------------------- [2000-12-06 21:50:25] joey@php.net This is actually incorrect behavior on the part of their ISQL utility according to Sybase's own documentation. --------------------------------------------------------------------------- [2000-09-06 14:02:44] lenar@city.ee hi, I'm really sorry messing the names up. Anyway when you change the ASA to ASE and vice versa in my comment then the meaning is correct. I really don't know where is the source of this problem, but I can only say that connecting to ASA (Anywhere) server with ISQL over network the behavior is correct (empty strings not spaces instead). And if this is the Sybase problem then do they know about it? Have somebody been in contact with them regarding this case? If yes, then what have they said? Lenar --------------------------------------------------------------------------- [2000-09-06 13:13:11] joey@php.net Unless you can convince me otherwise (getting sybase products correct would be a good start) I will close this bug... --------------------------------------------------------------------------- [2000-09-06 13:12:28] joey@php.net #1: You have got yourself ass-backwards ASA = /A/daptive /S/erver /A/nywhere ASE = /A/daptive /S/erver /E/nterprise Please edit your last comment with this in mind, as I cannot understand what you are trying to say. My guess is that you are using the /ASE/ libraries to connect to an /ASA/ database, which (AFAIK) has no officially defined behavior. Long story short: Connecting to /ASE/ behaves the way that /ASE/ always behaves. I'm fairly sure that this is NOT a PHP bug, but is due to the way that Sybase CT-Lib handles this. --------------------------------------------------------------------------- [2000-09-05 08:16:41] lenar@city.ee In ISQL I can do the same way you did and the results are ok: select '**', '*'+phone+'*' from users where phone = '' And I get: --------- ** ** ** ** so on... and the result can't be NULL beacuse the phone field is defined as NOT NULL DEFAULT '' so it always contains a string '' whenever it's not explictly specified to something else. We are here using Sybase ASE (Adaptive Server Anywhere) ver 6.0.3 and this is not the same thingas ASA 11.x. The versioning sequence is different. ASE supports open client connectivity and we are using ASA 11.9.x ct-libs client side libraries to provide the connectivity to our applications on windows platform and to php-sybase-ct on linux platform. This is because ASE isn't coming default with these libraries, but provides protocol-level compatibility when it's lot cheaper than ASA itself. Maybe I find time to debug php-sybase module myself but right now I just reported that in my opinion the problem still exists and still needs attention. Maybe the problem resides in these client libraries, but right now I don't know. Lenar --------------------------------------------------------------------------- The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online. Full Bug description available at: http://bugs.php.net/?id=6527

« previous php.dev (#41141) next »