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

From: Date: Fri, 17 Apr 2015 23:03:04 +0000
Subject: Bug #69474 [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-192173@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: cmb@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: 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: The re09febb snapshot works fine with the Access driver. Previous Comments: ------------------------------------------------------------------------ [2015-04-17 18:48:12] ab@php.net Please check this snapshot (or any later) http://windows.php.net/downloads/snaps/php-5.5/re09febb/ Thanks for triaging. ------------------------------------------------------------------------ [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

« previous php.bugs (#192173) next »