2011-12-07 10 views
5

Con l'estensione mysqli per PHP, è possibile utilizzare il metodo fetch_field() per ottenere i nomi originali (non allineati) per colonne e tabelle tramite orgname e orgtable nel risultato. PDO fornisce il metodo getColumnMeta(), ma non offre informazioni sui nomi di tabella e colonna originali; restituisce solo alias.Come ottenere il nome originale della tabella/colonna quando si utilizza PDO?

Esistono alternative per ottenere queste informazioni con PDO? Ho pensato analisi delle informazioni da SQL-query, ma spero che ci sono soluzioni più bella ...

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

risultati utilizzando 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

Secondo la documentazione, il risultato della chiamata ['PDOStatement.getColumnMeta'] (http://php.net/PDOStatement.getColumnMeta) include una colonna 'tabella' che contiene" [t] il nome di la tabella di questa colonna restituita dal database. " Non è questo ciò che hai visto in pratica? – outis

+0

Ho aggiunto i risultati al mio post! –

+0

Cordiali saluti !!! –

risposta

0

È possibile utilizzare il metodo fetch

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