Php пример postgresql: PHP: Базовое использование — Manual
Содержание
Подключиться к кластеру | Документация Selectel
Подключиться к кластеру PostgreSQL
К кластеру облачных баз данных PostgreSQL можно подключиться по DNS-адресу.
Если кластер подключен к приватной подсети, подключите к подсети кластера облачный роутер с доступом во внешнюю сеть.
Порты
Для подключения к PostgreSQL используйте порты:
- 5433 — порт для подключения к выбранной ноде через пулер соединений — позволяет снизить нагрузку на PostgreSQL;
- 5432 — порт для подключения напрямую к процессу PostgreSQL.
Способы подключения
- через терминальный клиент psql;
- через графические инструменты для управления базами данных: pgAdmin или офисный пакет с поддержкой ODBC или JDBC;
- из программного кода с SSL и без SSL.
Для всех способов доступно подключение с SSL-сертификатом.
Посмотреть адрес для подключения
- В панели управления перейдите в раздел Облачная платформа → Базы данных.
- Откройте страницу кластера баз данных → вкладка Подключение.
- В блоке DNS-адреса для подключения посмотрите DNS-адрес.
Подключиться с SSL
Подключение по SSL обеспечивает шифрование данных между вашим сервером и кластером баз данных.
- Bash
- PowerShell
- Python
- PHP
- Go
- Node.js
Скачайте корневой сертификат и поместите его в папку
~/.postgresql/
:mkdir -p ~/.postgresql/
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
chmod 0600 ~/.postgresql/root.crtПодключитесь к кластеру:
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
Откройте CLI.
Подключитесь к кластеру:
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
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.