Bug #69474 [Ver->Fbk]: ODBC: Query with same field name from two tables returns incorrect result

From: Date: Fri, 17 Apr 2015 18:48:12 +0000
Subject: Bug #69474 [Ver->Fbk]: ODBC: Query with same field name from two tables returns incorrect result
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-192169@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=69474&edit=1

 ID:                 69474
 Updated by:         ab@php.net
 Reported by:        heinrich dot moser dot jun at moware dot at
 Summary:            ODBC: Query with same field name from two tables
                     returns incorrect result
-Status:             Verified
+Status:             Feedback
 Type:               Bug
 Package:            ODBC related
 Operating System:   Windows Server 2012 R2
 PHP Version:        5.5.24
 Assigned To:        ab
 Block user comment: N
 Private report:     N

 New Comment:

Please check this snapshot (or any later) http://windows.php.net/downloads/snaps/php-5.5/re09febb/


Thanks for triaging.


Previous Comments:
------------------------------------------------------------------------
[2015-04-17 14:07:35] cmb@php.net

Verified with MS Access Driver (6.01.7601.17632). According to the
ODBC trace[1] the driver doesn't recognize
SQL_DESC_BASE_COLUMN_NAME in the SQLColAttribute() calls. The issue
seems to have been introduced in commit #899362d[2]. Anatol, can
you please have a look.

[1] <https://gist.github.com/cmb69/37147767adf0514674ee>
[2] <https://github.com/php/php-src/commit/899362db6ed3131ff96f07e2d2b7f77c76ce9c40>

------------------------------------------------------------------------
[2015-04-17 11:17:00] heinrich dot moser dot jun at moware dot at

Changed package from PDO ODBC to Database functions/ODBC related. Sorry for the initial
miscategorization.

------------------------------------------------------------------------
[2015-04-17 10:05:19] heinrich dot moser dot jun at moware dot at

Description:
------------
An ODBC query which created a correct result with PHP 5.5.23 produces an incorrect result with PHP
5.5.24. Tested on Windows Server 2012 R2 with SQL Server 2012.

How to reproduce:
1. Create an empty database and create the table with the test script given.
2. Create a system DSN called "forum" which connects to the database.
3. Execute the test script given with PHP 5.5.23 and 5.5.24 and compare the results.

Test script:
---------------
Database:
CREATE TABLE table1 (topic_id int);
CREATE TABLE table2 (topic_id int);
INSERT INTO table1 (topic_id) VALUES (1023);

Code:
<?php
date_default_timezone_set('Europe/Vienna');

$link = odbc_connect("forum", "", "");

$sql =
"SELECT table1.topic_id, table2.topic_id AS X
FROM table1 LEFT JOIN table2 ON table1.topic_id = table2.topic_id
WHERE table1.topic_id = 1023";

$result = odbc_exec($link, $sql);
$topic_data = odbc_fetch_array($result);
var_dump($topic_data);
odbc_free_result($result);
odbc_close($link);
?>

Expected result:
----------------
This is the script output I get with PHP 5.5.23:

array(2) {
  ["topic_id"]=>
  string(4) "1023"
  ["X"]=>
  NULL
}

Actual result:
--------------
This is the script output I get with PHP 5.5.24:

array(1) {
  ["topic_id"]=>
  NULL
}


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



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


Thread (7 messages)

« previous php.bugs (#192169) next »