php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: fabrizio dot balliano at crealabs dot it
New email:
PHP Version: OS:

 

 [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-05-17 15:35 UTC] fabrizio dot balliano at crealabs dot it
it should, pgsql old driver already has it and i used it

if you look here:
http://it.php.net/manual-lookup.php?pattern=field_table&lang=it
you can find what old drivers already have that function
 [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
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 11:01:29 2024 UTC