The reason is because the buffer used by the odbc extension to store field
names is only 32 bytes. You can try using the sybase or odbtp extension.
Otherwise,  you will have to submit it as a bug, so that it will be fixed.

-- bob

On Thu, 9 Sep 2004, Anthony Robins wrote:

> When retrieving ODBC results from Sybase SQL Anywhere 6 and 9, the
> column names are being truncated to 31 characters. --
>
> <?php
> $DBN = 'thedbn';
> $UID = 'theuid';
> $PWD = 'thepws';
>
> $CONN = odbc_connect( $DBN, $UID, $PWD ) or die( "Cannot connect to
> $DBN."); $sql = "select * from crap"; $result = odbc_exec( $CONN,
> $sql );
>
> for( $i = 1 ; $i <= odbc_num_fields( $result ) ; $i++ ) {
>    $name = odbc_field_name( $result, $i );
>    ${$name} = odbc_result( $result, $name );
>    print( "$i: $name - ${$name}\n" );
> }
> ?>
>
> Result:
> 1: key - 4
> 2: a_really_long_name_that_is_long - 5
> 3: longer_name - 6
>
> I expected #2 to have the name:
> a_really_long_name_that_is_longer_than_31_characters
>
> -- This happens even if the column name is simply specified using sql
> 'AS' (i.e. "select column as
> a_really_long_name_that_is_longer_than_31_characters from crap" would
> still return "a_really_long_name_that_is_long" as the column name).
>
> Using PHP 4.3.4 on Windows 2000 Server. Have also tried on SUSE Linux
> as well as with PHP 5.
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to