Php пример postgresql: PHP: Базовое использование — Manual

Подключиться к кластеру | Документация Selectel

Подключиться к кластеру PostgreSQL

К кластеру облачных баз данных PostgreSQL можно подключиться по DNS-адресу.

Если кластер подключен к приватной подсети, подключите к подсети кластера облачный роутер с доступом во внешнюю сеть.

Порты​

Для подключения к PostgreSQL используйте порты:

  • 5433 — порт для подключения к выбранной ноде через пулер соединений — позволяет снизить нагрузку на PostgreSQL;
  • 5432 — порт для подключения напрямую к процессу PostgreSQL.

Способы подключения​

  • через терминальный клиент psql;
  • через графические инструменты для управления базами данных: pgAdmin или офисный пакет с поддержкой ODBC или JDBC;
  • из программного кода с SSL и без SSL.

Для всех способов доступно подключение с SSL-сертификатом.

Посмотреть адрес для подключения​

  1. В панели управления перейдите в раздел Облачная платформа → Базы данных.
  2. Откройте страницу кластера баз данных вкладка Подключение.
  3. В блоке DNS-адреса для подключения посмотрите DNS-адрес.

Подключиться с SSL​

Подключение по SSL обеспечивает шифрование данных между вашим сервером и кластером баз данных.

  • Bash
  • PowerShell
  • Python
  • PHP
  • Go
  • Node.js
  1. Скачайте корневой сертификат и поместите его в папку ~/.postgresql/:

    mkdir -p ~/.postgresql/
    wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
    chmod 0600 ~/.postgresql/root.crt
  2. Подключитесь к кластеру:

    psql --host=<host> \
    --port=<port> \
    --user=<database_user_name> \
    --dbname=<database_name> \
    --sslmode=verify-ca

    Укажите:

    • <host> — DNS-адрес ноды;
    • <port> — порт для подключения;
    • <database_user_name> — имя пользователя базы данных;
    • <database_name> — имя базы данных.

Подключиться без SSL​

  • Bash
  • PowerShell
  • Python
  • PHP
  • Go
  • Node.js
  1. Откройте CLI.

  2. Подключитесь к кластеру:

    psql --host=<host> \
    --port=<port> \
    --user=<database_user_name> \
    --dbname=<database_name> \
    --sslmode=disable

    Укажите:

    • <host> — DNS-адрес ноды;
    • <port> — порт для подключения;
    • <database_user_name> — имя пользователя базы данных;
    • <database_name> — имя базы данных.

PHP 5.

6 и PHP 7 на русском: PostgreSQL

Jun
05

PostgreSQL

Базовое использование

pg_affected_rows

PostgreSQL

PHP Manual


Примечания

Замечание:

Не все функции могут поддерживаться в собранном модуле. Это зависит
от версии вашей libpq (клиентская библиотека PostgreSQL) и как libpq
была собрана. Если расширение PostgreSQL для PHP отсутствует, то это
значит, что версия вашей libpq не поддерживается.

Замечание:

Большинство функций PostgreSQL принимают connection
в качестве первого необязательного параметра. Если параметр отсутствует, то
используется последнее открытое соединение. Если же такого не существует, то
функция возвращает FALSE.

Замечание:

PostgreSQL автоматически переводит все идентификаторы (такие, как имена
таблиц/столбцов) в нижний регистр во время создания объекта и выполнения
запроса. Для того, чтобы заставить использовать идентификаторы в обоих
или только в верхнем регистрах, вы должны экранировать идентификатор с помощью
двойные кавычки («»).

Замечание:

В PostgreSQL нет специальных команд для получения информации о схеме БД
(к примеру, всех таблиц выбранной базы данных). Но вместо этого в версиях
PostgreSQL 7.4 и выше существует стандартная схема, которая называется
information_schema. Она содержит системные представления
(view) со всей необходимой информацией в легкодоступной форме. Для
дополнительной информации см. » документацию PostgreSQL

Содержание

  • pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)
  • pg_cancel_query — Остановка асинхронного запроса.
  • pg_client_encoding — Получение кодировки клиента.
  • pg_close — Закрывает соединение с базой данных PostgreSQL
  • pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection
    attempt.
  • pg_connect — Открывает соединение с базой данных PostgreSQL
  • pg_connection_busy — Проверяет, занято ли соединение в данный момент.
  • pg_connection_reset — Сброс подключение (переподключение)
  • pg_connection_status — Определяет состояние подключения
  • pg_consume_input — Reads input on the connection
  • pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах
  • pg_copy_from — Вставляет записи из массива в таблицу
  • pg_copy_to — Копирует данные из таблицы в массив
  • pg_dbname — Определяет имя базы данных
  • pg_delete — Удаляет записи
  • pg_end_copy — Синхронизирует с бэкендом PostgreSQL
  • pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_identifier — Escape a identifier for insertion into a text field
  • pg_escape_literal — Escape a literal for insertion into a text field
  • pg_escape_string — Экранирование спецсимволов в строке запроса
  • pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив
  • pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив
  • pg_fetch_array — Возвращает строку результата в виде массива
  • pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив
  • pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result — Возвращает запись из результата запроса
  • pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив
  • pg_field_is_null — Проверка поля на значение SQL NULL
  • pg_field_name — Возвращает наименование поля
  • pg_field_num — Возвращает порядковый номер именованного поля
  • pg_field_prtlen — Возвращает количество печатаемых символов
  • pg_field_size — Возвращает размер поля
  • pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле
  • pg_field_type_oid — Возвращает идентификатор типа заданного поля
  • pg_field_type — Возвращает имя типа заданного поля
  • pg_flush — Flush outbound query data on the connection
  • pg_free_result — Очистка результата запроса и освобождение памяти
  • pg_get_notify — Получение SQL NOTIFY сообщения
  • pg_get_pid — Получает ID процесса сервера БД
  • pg_get_result — Получение результата асинхронного запроса
  • pg_host — Возвращает имя хоста, соответствующего подключению
  • pg_insert — Заносит данные из массива в таблицу базы данных
  • pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных
  • pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL
  • pg_last_oid — Возвращает OID последней добавленной в базу строки
  • pg_lo_close — Закрывает большой объект
  • pg_lo_create — Создает большой объект
  • pg_lo_export — Вывод большого объекта в файл
  • pg_lo_import — Импорт большого объекта из файла
  • pg_lo_open — Открывает большой объект базы данных
  • pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в броузер
  • pg_lo_read — Читает данные большого объекта
  • pg_lo_seek — Перемещает внутренний указатель большого объекта
  • pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта
  • pg_lo_truncate — Truncates a large object
  • pg_lo_unlink — Удаление большого объекта
  • pg_lo_write — Записывает данные в большой объект
  • pg_meta_data — Получение метаданных таблицы
  • pg_num_fields — Возвращает количество полей в выборке
  • pg_num_rows — Возвращает количество строк в выборке
  • pg_options — Получение параметров соединения с сервером баз данных
  • pg_parameter_status — Просмотр текущих значений параметров сервера
  • pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
  • pg_ping — Проверка соединения с базой данных
  • pg_port — Возвращает номер порта, соответствующий заданному соединению
  • pg_prepare — Посылает запрос на создание параметризованного SQL выражения
    и ждет его завершения
  • pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем
  • pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_query — Выполняет запрос
  • pg_result_error_field — Возвращает конкретное поле из отчета об ошибках
  • pg_result_error — Возвращает сообщение об ошибке, связанной с запросом результата
  • pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса
  • pg_result_status — Возвращает состояние результата запроса
  • pg_select — Выбирает записи из базы данных
  • pg_send_execute — Запускает предварительно подготовленный SQL запрос и
    передает ему параметры; не ожидает возвращаемого результата
  • pg_send_prepare — Посылает запрос на создание параметризованного SQL выражения;
    не ожидает его завершения
  • pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
  • pg_send_query — Отправляет асинхронный запрос
  • pg_set_client_encoding — Устанавливает клиентскую кодировку
  • pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями
    pg_last_error и pg_result_error
  • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
  • pg_trace — Включает трассировку подключения PostgreSQL
  • pg_transaction_status — Возвращает текущее состояние транзакции на сервере
  • pg_tty — Возвращает имя терминала TTY, связанное с соединением
  • pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea
  • pg_untrace — Отключает трассировку соединения с PostgreSQL
  • pg_update — Обновление данных в таблице
  • pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного
    взаимодействия и сервера (если доступно)
  • PHP Руководство
  • Функции по категориям
  • Индекс функций
  • Справочник функций
  • Расширения для работы с базами данных
  • Расширения для работы с базами данных отдельных производителей
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • PostgreSQL

Базовое использование

pg_affected_rows

PostgreSQL

PHP Manual

 

 
Поддержать сайт на родительском проекте КГБ

Как установить соединения с базой данных Postgresql в PHP

JC Томас Роджерс III

JC Томас Роджерс III

Программист/разработчик в Motor Werks Auto Group

Опубликовано 16 августа 2015 г.

+ Подписаться

Знаете ли вы, что с языком сценариев PHP можно использовать другие базы данных, кроме MySql? Если вы прочитаете PHP-форумы, может показаться, что этот факт широко неизвестен. Postgresql — это чрезвычайно многофункциональная система баз данных с открытым исходным кодом, которая существует уже много лет. Хотя я могу более подробно описать его функции и возможности, вы можете узнать гораздо больше, посетив веб-сайт Posgres по адресу http://postgresql.org/about. Вместо этого я покажу вам различные способы подключения и выполнения команд sql в среде сценариев PHP.

Существует множество способов написания и организации кода, и мой стиль не обязательно является единственным или официальным способом сделать что-либо. Но я покажу вам несколько различных рудиментарных способов, с помощью разных драйверов и инструментов абстракции, для фактического установления соединения и выполнения оператора SQL. Я также собираюсь сделать предположение, что в вашей установке PHP уже включена поддержка Postgresql. Если нет, обратитесь к документации PHP для реализации этих расширений.

Расширение Postgresql

Первый способ подключения — использование расширений от поставщиков Postgres, предоставляемых в ядре PHP. Официальную документацию по PHP можно найти по адресу http://php.net/manual/en/book.pgsql.php.

Код для самого простого соединения и запроса Postgresql:

Объекты данных PHP (PDO)

Второй способ установить соединение Postgres — использовать расширение PDO. Это конкретное расширение было изначально доступно для PHP, начиная с версии 5.1, и требует объектно-ориентированной базовой функциональности PHP и не будет работать в версиях PHP до версии 5.9.0003

PDO — это уровень абстракции доступа к данным, что означает, что независимо от того, какую базу данных вы используете, функции для выполнения запросов и выборки данных будут одинаковыми. Чтобы использовать PDO в вашей установке PHP, вам также необходимо установить драйвер для конкретных драйверов базы данных для работы с PDO. Дополнительную информацию об этой и других темах PDO можно найти по адресу http://php.net/manual/en/book.pdo.php.

Код для самого простого соединения Postgres PDO и запроса:

Библиотека абстракции базы данных ADOdb

Последний метод, который я вам покажу, — это сторонний продукт с открытым исходным кодом под названием ADOdb. Он существует уже давно и поддерживает очень большое количество различных баз данных, включая LDAP и ODBC. Это не встроено в PHP, а представляет собой библиотеку, которую вы должны сначала загрузить, а затем включить в свой скрипт. Вы можете узнать больше об этой библиотеке, посетив веб-страницу по адресу http://adodb.sourceforge.net.

Код для самого простого соединения и запроса ADOdb Postgres:

Кроме того, вы можете добавить обработку исключений adodb для лучшего контроля ошибок. Добавляем в скрипт библиотеку исключений из adodb и корректируем приведенный выше скрипт примерно так, как приведенный ниже фрагмент кода.

Заключение

Я показал вам несколько различных способов подключения к базе данных Postgres и выполнения запросов в PHP. Это, конечно, не исчерпывающее руководство по Postgres в PHP, но оно должно стать хорошим первым шагом в использовании этого очень мощного ресурса.

 

Сервер

— Как настроить PHP с Nginx, APC и PostgreSQL?

Задавать вопрос

спросил

Изменено
12 лет, 6 месяцев назад

Просмотрено
18 тысяч раз

Я использую Ubuntu Server 10.10 и хочу настроить среду веб-сервера с помощью NginX, PHP 5.3.3, PostgreSQL и предпочтительно APC и PHP Suhosin.

Я уже настроил PostgreSQL с помощью apt-get install postgresql и Nginx с apt-get install nginx .

Но как настроить для них PHP? Могу ли я сделать это с помощью apt-get install или мне нужно загрузить исходники и скомпилировать их? Я бы предпочел сделать это с помощью apt-get .

Я бы хотел использовать PHP-FPM для Nginx. Большинство руководств, которые я нашел в Интернете, устарели и компилируют PHP, но это не рекомендуется для рабочих серверов.

Как мне проще всего настроить PHP с помощью Nginx, APC и PostgreSQL? или хотя бы PHP-FPM + Nginx?


ОБНОВЛЕНИЕ

Теперь я установил свежий сервер Ubuntu 10.10 и выполнил команду, предложенную Питером, с добавлением php5-suhosin . После этого Nginx работает нормально, затем я редактирую сгенерированный файл конфигурации, как показано ниже. После перезагрузки нового файла конфигурации Nginx по-прежнему работает нормально, используя index.html , но когда я добавляю файл index.php , он перестает работать. Я предполагаю, что это связано с PHP-FPM, APC или чем-то, связанным с PHP. Но это может быть и конфигурационный файл для PHP-FPM.

Вот файл конфигурации для Nginx, который я использую, большая его часть генерируется по умолчанию. Я пропустил комментарии.

 сервер {
    слушать 80;
    слушать [::]:80 по умолчанию ipv6only=on;
    имя_сервера локальный хост;
    журнал_доступа /var/log/nginx/localhost.access.log;
    местоположение /favicon.ico {
        пустой_gif;
    }
    расположение / {
        корень /var/www;
        индекс index.php index.html index.htm;
    }
    расположение ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        включить /etc/nginx/fastcgi_params;
    }
}
 
  • сервер
  • установка
  • apt
  • php
  • nginx

3

Начиная с Ubuntu 10.10 это тривиально с новым пакетом php5-fpm

Следующие пакеты делают все, что вам нужно

  • nginx — веб-сервер
  • php5-fpm — PHP-сервер Fast-CGI
  • php-apc — Пакет APC для php
  • php5-pgsql — модуль PostgreSQL для PHP
  • postgresql — Сервер базы данных PostgreSQL

Все вместе sudo apt-get install nginx php5-fpm php-apc php5-pgsql postgresql

Также предлагаю проверить установлен ли apache2. Если это так, удалите его с помощью sudo apt-get remove apache2 , чтобы Apache и nginx не конкурировали за порт 80.

Обратите внимание, что стандарт xdebug также хочет использовать порт 9000, как и php5-fpm. Поэтому, если вы используете xdebug, измените этот порт, например, на 9001

. И в качестве бонуса пример конфигурации nginx (поместите его в /etc/nginx/sites-available и сделайте символическую ссылку в /etc/nginx/sites-enabled)

 сервер {
  слушать 80;
  имя_сервера site.com;
  журнал_доступа /data/log/www/site.com/access.log;
  журнал_ошибок /data/log/www/site.com/error.log;
  корень /data/www_data/site.com/public;
  индекс index.php;
  местоположение = /favicon.ico {
    пустой_gif;
    #возврат 204;
  }
  расположение ~ \.php$ {
    включить /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
  }
}
 

7

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.