2011-12-07 9 views
5

Con la extensión mysqli para PHP, podría usar el método fetch_field() para obtener los nombres originales (sin título) para columnas y tablas a través de orgname y orgtable en el resultado. PDO proporciona el método getColumnMeta(), pero no ofrece información sobre la tabla original y los nombres de columna; solo devuelve alias.¿Cómo obtener el nombre original de la tabla/columna cuando usa PDO?

¿Hay alguna alternativa para obtener esta información con PDO? He estado pensando acerca de analizar la información de la consulta SQL, pero espero que hay soluciones más bonitas ...

SELECT id AS col1, session AS col2 FROM sessions AS table1; 

Los resultados usando PDOStatement::getColumnMeta():

Array 
(
    [native_type] => LONG 
    [flags] => Array 
     (
      [0] => not_null 
      [1] => primary_key 
     ) 

    [table] => table1 
    [name] => col1 
    [len] => 10 
    [precision] => 0 
    [pdo_type] => 2 
) 
Array 
(
    [native_type] => VAR_STRING 
    [flags] => Array 
     (
      [0] => not_null 
      [1] => unique_key 
     ) 

    [table] => table1 
    [name] => col2 
    [len] => 32 
    [precision] => 0 
    [pdo_type] => 2 
) 
+0

De acuerdo con la documentación, el resultado de llamar a ['PDOStatement.getColumnMeta'] (http://php.net/PDOStatement.getColumnMeta) incluye una columna 'table' que contiene" [t] e nombre de la tabla de esta columna como la devuelve la base de datos ". ¿No es esto lo que has visto en la práctica? – outis

+0

¡Agregue los resultados a mi publicación! –

+0

¡¡¡Un cordial saludo !!! –

Respuesta

0

Puede utilizar fetch método

while ($row = $stmt->fetch()) { 
     var_dump($row); 
    } 
Cuestiones relacionadas