[PHP-DEV] PHP 4.0 Bug #6527 Updated: empty field returned are not empty From: joey <email protected>
Date: 12/13/00

ID: 6527
Updated by: joey
Reported By: lenar <email protected>
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 <email protected>
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 <email protected>
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 <email protected>
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 <email protected>
#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 <email protected>
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

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>