getColumnMeta() should also return table name

Request #41416 getColumnMeta() should also return table name
Submitted: 2007-05-17 13:25 UTC Modified: 2007-06-13 11:58 UTC
From: fabrizio dot balliano at crealabs dot it Assigned:
Status: Closed Package: Feature/Change Request
PHP Version: 5.2.2 OS:
Private report: No CVE-ID: None

 [2007-05-17 13:25 UTC] fabrizio dot balliano at crealabs dot it

Description:
------------
if you run a query with joins is really useful to have the getcolumnmeta to return the table name thus I can understand from the resultset with field come from every table

now it's possible to do that with 
http://it.php.net/manual/it/function.mysql-tablename.php


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports

 [2007-05-17 14:10 UTC] tony2001@php.net

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.


 [2007-05-17 14:16 UTC] fabrizio dot balliano at crealabs dot it

there's no need for test scripts, point just is that calling getColumnMeta() should return the table name of the column

 [2007-05-17 14:23 UTC] tony2001@php.net

I'm going to look into it and I would like to have a test script handy. I guess you already have one, please provide it, so that I wouldn't have to spend time on it.
Thank you.

 [2007-05-17 14:29 UTC] fabrizio dot balliano at crealabs dot it

actually i don't have a test script...

just run something like

select * from table1 join table2 on (table1.id=table2.id)

the resultset wouldn't allow me to know with field come from table1 or table2, thus you call eg:

getcolumnmeta(5)

and you should also get table_name=>table1 or table2 or whatever

 [2007-05-17 14:58 UTC] tony2001@php.net

Then please create one, I'll look into the feature request after that.

 [2007-05-17 15:03 UTC] fabrizio dot balliano at crealabs dot it

<?php
$select = $DB->query('SELECT * FROM table1 JOIN table2 ON (table1.id = table2.id)');
$colcount = $select->columnCount();

for ($i=0; $i<$colcount; $i++) {
  $meta = $select->getColumnMeta(0);
  var_dump($meta);
}
?>

 [2007-05-17 15:12 UTC] tony2001@php.net

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 [2007-05-17 15:21 UTC] fabrizio dot balliano at crealabs dot it

was it implemented for all drivers?

 [2007-05-17 15:29 UTC] tony2001@php.net

No idea if that's even possible for other drivers than MySQL.

 [2007-06-13 11:58 UTC] fabrizio dot balliano at crealabs dot it

this should be added at least for:
fbsql: fbsql_field_table
msql: msql_field_table
pgsql: pg_field_table