ID:               28314
 User updated by:  adamh at densi dot com
 Reported By:      adamh at densi dot com
 Status:           Bogus
 Bug Type:         Sybase-ct (ctlib) related
 Operating System: Linux
 PHP Version:      4.3.4
 New Comment:

I'm delving into the source, so please correct me if I err:

Inside the source, sybase_fetch_array() and sybase_fetch_assoc() both
call php_sybase_fetch_hash(), in exactly the same manner as
php_mssql_fetch_hash().

In other words, mssql_fetch_assoc($r) (the "real" one) is equivalent to
mssql_fetch_array($r, MSSQL_ASSOC) internally, since both functions
call php_mssql_fetch_hash() with different arguments. I see a direct
parallel to Sybase_ct's php_sybase_fetch_hash(), with two differences:

1. php_sybase_fetch_hash() doesn't parse for the possible second
argument.
2. MSSQL_ASSOC is not defined.

However, both of these issues are trivial to resolve, aren't they? It
seems to me that sybase_ct should conform to mssql on commonly used,
well-documented functions.


Previous Comments:
------------------------------------------------------------------------

[2004-05-07 18:02:50] [EMAIL PROTECTED]

The MSSQL_ASSOC constant is ONLY defined by the mssql 
extension. The sybase extension does not define this 
constant because sybase_fetch_array() (on which 
mssql_fetch_array()) is based on in sybase* extension does 
not support this feature. You should instead be using the 
sybase_fetch_assoc() function. 

------------------------------------------------------------------------

[2004-05-07 17:57:43] adamh at densi dot com

I respectfully disagree. Sybase_ct gives access to the
mssql_fetch_array() function and yet the function does *not* follow the
documentation. This is obviously a bug in sybase_ct!

php -m does not show mssql; however, it does show sybase_ct. And
mssql_fetch_array() is defined and works... but not the way it is
supposed to.

------------------------------------------------------------------------

[2004-05-07 17:47:39] [EMAIL PROTECTED]

Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions. 

Thank you for your interest in PHP.

Sounds like you don't actually load the sybase extensions. 
Make sure that php -m shows "mssql". 

------------------------------------------------------------------------

[2004-05-07 16:11:41] adamh at densi dot com

Description:
------------
>From PEAR's DB.php:

$ar = @mssql_fetch_array($result, MSSQL_ASSOC);

According to the documentation, this should work. On Windows, it does.
However, when using the Sybase CT library (for example, apt-get install
php4-sybase on Debian), this line will fail because MSSQL_ASSOC isn't
defined.

Reproduce code:
---------------
<?php

print MSSQL_ASSOC . "\n";

?>

Expected result:
----------------
0

Actual result:
--------------
PHP Notice:  Use of undefined constant MSSQL_ASSOC - assumed
'MSSQL_ASSOC' in /home/adam/t.php on line 3

Notice: Use of undefined constant MSSQL_ASSOC - assumed 'MSSQL_ASSOC'
in /home/adam/t.php on line 3
MSSQL_ASSOC


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=28314&edit=1

Reply via email to