Jak uzyskać nazwę kolumny z Zend DBJak uzyskać nazwę kolumny z Zend DB
Odpowiedz
Jest poprawną odpowiedź, starszych i odpowiedziami są nieprawidłowe lub nieaktualne:
$cols = $table->info(Zend_Db_Table_Abstract::COLS);
przepisał swój wstępny tekst, ponieważ SO nie wie, "wpadając" i pytania/odpowiedzi nie są uważane za stare. w rzeczywistości SO to wiki i aktualizacja jest jedną z najlepszych rzeczy, które możesz zrobić! +1 – markus
Można użyć metody describeTable
$metadata = $db->describeTable($tableName);
$columnNames = array_keys($metadata);
http://framework.zend.com/manual/en/zend.db.html#zend.db.adapter.list-describe
To nie jest w 100% poprawne, ponieważ metadane $ to tablica asocjacyjna ("nazwa_kolumny" => tablica()) tablic asocjacyjnych (jedna dla każdej kolumny tabeli). –
dodaj nazwę schame do $ db-> describeTable ($ tableName, $ schema); , właśnie popełniłem błąd, używając oracle, która pobiera stare nazwy kolumn, gdybym je zmienił i musiałem określić schemat powrotu do prawej kolumny –
Poprzednia odpowiedź dotyczy tylko wersji < 2.
Dla obecnej wersji ZF (2.2):
$table = new Zend\Db\TableGateway\TableGateway('table', $Dbadapter, new Zend\Db\TableGateway\Feature\MetadataFeature());
$columns = $table->getColumns();
http://framework.zend.com/manual/2.2/en/modules/zend.db.table-gateway.html#tablegateway-features http://framework.zend.com/manual/2.2/en/modules/zend.db.metadata.html
Lubię ten sposób:
$table->info('cols');
Może powinieneś opisać trochę czego” próbuję to zrobić ... Odpowiedź Apikota jest jednak punktem wyjścia. –