За последние 24 часа нас посетили 20938 программистов и 1108 роботов. Сейчас ищут 419 программистов ...

postgresql Вывод таблиц

Тема в разделе "PostgreSQL", создана пользователем NeverDie, 26 янв 2011.

  1. NeverDie

    NeverDie Активный пользователь

    С нами с:
    26 янв 2011
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте. Пишу поиск для сайта. Столкнулся с проблемой. Как просмотреть базу данных на наличие таблиц и получить их имена (мне нужны имена таблиц, что бы в дальнейшем с ними можно было работать) ?
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    для базы данных dbase

    SELECT table_name FROM information_schema.tables WHERE table_schema = 'dbase';
     
  3. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
  4. NeverDie

    NeverDie Активный пользователь

    С нами с:
    26 янв 2011
    Сообщения:
    5
    Симпатии:
    0
    Как этот запрос обработать через php и получить названия таблиц в массиве?
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    NeverDie
    чувствую, что если дам php код, то следующим вопросом будет "Куда ЭТО вставить, чтобы работало ?"
     
  6. NeverDie

    NeverDie Активный пользователь

    С нами с:
    26 янв 2011
    Сообщения:
    5
    Симпатии:
    0
    Может кому пригодится
    $result = pg_query("select tablename from pg_tables where tablename !~ '^pg_+';");

    while ( $row = pg_fetch_row($result) )

    {
    echo $row[0] . '<br/>';
    }
     
  7. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Лучше все же из information_schema, ибо это SQL стандарт, а pg_* - исключительно постргесовская весч, которую нужно использовать только если нужной информации нет в information_schema.
    И запрос все-равно неверный, так как в постгресе используется понятие "схема" - по сути это неймспейс и выполняет такие же функции, как database в mysql.
     
  8. NeverDie

    NeverDie Активный пользователь

    С нами с:
    26 янв 2011
    Сообщения:
    5
    Симпатии:
    0
    Вариант номер 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/>';

    };
     
  9. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
  10. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    Дергаем данные из Postgres
    Код (Text):
    1. <?php
    2. $host = "***"; \\имя хоста
    3. $user = "***"; \\логин
    4. $pass = "***";  \\пасс
    5. $db = "***"; \\имя дб
    6. $con = pg_connect("host=$host dbname=$db user=$user password=$pass")
    7.     or die ("Could not connect to server\n");
    8.  
    9. $query = "SELECT   tag FROM   public.id ORDER BY \"Time\" DESC LIMIT 100  ;";  //свой запрос
    10. $rs = pg_query($con, $query) or die("Cannot execute query: $query\n");
    11.  
    12. while ($row = pg_fetch_row($rs)) {
    13. $Arr[]=$row[0];
    14. }
    15. pg_close($con);
    16. echo json_encode($Arr);
    17. ?>
     
  11. masa

    masa Новичок

    С нами с:
    3 июл 2015
    Сообщения:
    1
    Симпатии:
    0
    а как сделать,чтобы выводилась не 1 строка,а вся таблица?