Edit report at https://bugs.php.net/bug.php?id=61758&edit=1
ID: 61758
Comment by: phpmpan at mpan dot pl
Reported by: johnbillion at gmail dot com
Summary: mysql_fetch_field() incorrectly reports table name
when using a table alias
Status: Open
Type: Bug
Package: MySQL related
Operating System: Windows 7
PHP Version: 5.3.10
Block user comment: N
Private report: N
New Comment:
You have introduced an alias for a table in your query and the result contents
reflects this. There is a good reason for such behaviour. Consider a following
query:
SELECT *
FROM SomeTable AS workers
JOIN SomeTable AS managers ON managers.id = workers.boss
Previous Comments:
------------------------------------------------------------------------
[2012-04-17 19:03:31] johnbillion at gmail dot com
Description:
------------
The value of the 'Table' property returned by mysql_fetch_field() will be
incorrect if a table alias was used in the SQL query.
Test script:
---------------
// It's assumed a MySQL resource has been established here
$result = mysql_query( 'SELECT * FROM table AS t' );
$i = 0;
while ( $i < mysql_num_fields( $result ) ) {
$col_info[] = mysql_fetch_field( $result );
$i++;
}
echo '<pre>' . print_r( $col_info, true ) . '</pre>';
Expected result:
----------------
The 'Table' property of the object output should be 'table'.
Actual result:
--------------
The 'Table' property of the object output is 't'.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=61758&edit=1