[Postgres][PHP] Jak za pomocą PHP pobrać nazwy tabel dostępne w wybranej bazie danych?

0x01 graphic

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ć.

0x01 graphic

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.