[Postgres][PHP] Jak za pomocą PHP pobrać nazwy tabel dostępne w wybranej bazie danych?
Chcesz z poziomu PHP sprawdzić jakie tabele dostępne są w wybranej bazie danych. Nazwa tabeli potrzebna Ci jest aby się z nią potem np. połączyć.
Nazwy tabel bez problemu możesz uzyskać korzystając z psql, jednak czasem istnieje potrzeba pobrania nazw tabel za pomocą zapytania SQL wysłanego ze skryptu PHP. Zobacz jak można pobrać nazwy tabel wchodzących w skład wybranej bazy danych:
<?
$pyt="SELECT tablename FROM pg_tables WHERE tablename NOT LIKE 'pg%'";
$baza = pg_pConnect("dbname=jakasbaza port=5432 user=uzytkownik");
$wynik = pg_Exec($baza, $pyt);
pg_close($baza);
$ile = pg_numrows($wynik);
for ($i=0;$i<$ile;$i++) {
echo "<br>- ".pg_result($wynik, $i, "tablename");
}
?>
Zapytanie SQL zwraca wszystkie tabele, których nazwy zapisane są w tabeli systemowej pg_tables dla wybranej bazy danych. Ponieważ tabel jest wiele, a większość z nich jest systemowa, wybieramy tylko takie, które nie zaczynają się od pg_.
Następnie wysyłamy pytanie do Postgresa, pobieramy wynik i wyświetlamy nazwy tabel na ekran. W połączeniu z bazą musisz podać nazwę bazy danych i nazwę użytkownika.