Здравствуйте. Пишу поиск для сайта. Столкнулся с проблемой. Как просмотреть базу данных на наличие таблиц и получить их имена (мне нужны имена таблиц, что бы в дальнейшем с ними можно было работать) ?
NeverDie чувствую, что если дам php код, то следующим вопросом будет "Куда ЭТО вставить, чтобы работало ?"
Может кому пригодится $result = pg_query("select tablename from pg_tables where tablename !~ '^pg_+';"); while ( $row = pg_fetch_row($result) ) { echo $row[0] . '<br/>'; }
Лучше все же из information_schema, ибо это SQL стандарт, а pg_* - исключительно постргесовская весч, которую нужно использовать только если нужной информации нет в information_schema. И запрос все-равно неверный, так как в постгресе используется понятие "схема" - по сути это неймспейс и выполняет такие же функции, как database в mysql.
Вариант номер 2: $result = pg_query(" SELECT table_name FROM information_schema.TABLES WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema');"); while ( $row = pg_fetch_array($result) ){ echo $row[0] . '<br/>'; };
Дергаем данные из Postgres Код (Text): <?php $host = "***"; \\имя хоста $user = "***"; \\логин $pass = "***"; \\пасс $db = "***"; \\имя дб $con = pg_connect("host=$host dbname=$db user=$user password=$pass") or die ("Could not connect to server\n"); $query = "SELECT tag FROM public.id ORDER BY \"Time\" DESC LIMIT 100 ;"; //свой запрос $rs = pg_query($con, $query) or die("Cannot execute query: $query\n"); while ($row = pg_fetch_row($rs)) { $Arr[]=$row[0]; } pg_close($con); echo json_encode($Arr); ?>