php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #44003 odbc_fetch_array returns truncated field names
Submitted: 2008-01-31 18:17 UTC Modified: 2020-10-05 13:25 UTC
Votes:14
Avg. Score:4.7 ± 0.6
Reproduced:14 of 14 (100.0%)
Same Version:3 (21.4%)
Same OS:6 (42.9%)
From: tceverling at yahoo dot co dot uk Assigned: cmb (profile)
Status: Duplicate Package: ODBC related
PHP Version: 5.2.5 OS: Windows XP SP2
Private report: No CVE-ID: None
 [2008-01-31 18:17 UTC] tceverling at yahoo dot co dot uk
Description:
------------
After executing a "SELECT" SQL query and then doing an odbc_fetch_array(), field names longer than 31 characters gets truncated.

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

$link = odbc_connect('MYSQL', '', '');  //  Connect to MySQL
$res = odbc_exec($link, 'select * from test');
var_dump(odbc_fetch_array($res));


$link = odbc_connect('Access', '', '');  //  Connect to Microsoft Access
$res = odbc_exec($link, 'select * from test');
var_dump(odbc_fetch_array($res));

?>

Expected result:
----------------
Assuming that a field name within the table `test` is '1234567890123456789012345678901234567890', expected result maybe like:

array(1) {
  ["1234567890123456789012345678901234567890"]=>
  string(1) "1"
}

array(1) {
  ["1234567890123456789012345678901234567890"]=>
  string(1) "1"
}

Actual result:
--------------
array(1) {
  ["1234567890123456789012345678901"]=>
  string(1) "1"
}

array(1) {
  ["1234567890123456789012345678901"]=>
  string(1) "1"
}

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-04-17 13:09 UTC] netvbonline at yahoo dot co dot uk
This is over a year old? Has anyone been able to fix as I am using latest version of PHP as of 17 Apr 2009 with dynamic queries and just encountered this issue

Many Thanks :-))
 [2009-08-11 16:29 UTC] tyler dot reese at taqua dot com
In /ext/odbc/php_odbc_includes.h, you can change the 'name' field, of the 'odbc_result_value' struct, from 32 to 256 (or whatever length you need), and then recompile PHP.

With that said, is this (changing 'name' length from 32 to 256) ever going to be a permanent fix in any upcoming official version of PHP?

This same issue is reported in:
Bug #30043 ODBC Column Name Truncation (missing multi-byte support)
 [2020-10-05 13:25 UTC] cmb@php.net
-Status: Open +Status: Duplicate -Assigned To: +Assigned To: cmb
 [2020-10-05 13:25 UTC] cmb@php.net
This issue has been fixed as bug #65950.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 14:01:29 2024 UTC