Postgresql и php: PHP: Базовое использование — Manual
Содержание
PostgreSQL | Руководство по PHP
Вернуться к: PostgreSQL
Примечания
Замечание:
Не все функции могут поддерживаться в собранном модуле. Это зависит
от версии вашей 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 — Возвращает массив, содержащий версии клиента, протокола клиент-серверного
взаимодействия и сервера (если доступно)
Вернуться к: PostgreSQL
Установка NextCloud+Nginx+PHP+PostgreSQL на Linux | Obu4alka.
ru
webmaster С.
07.04.2021
7 комментариев
Сегодня в статье рассмотрим пример по установке и настройке домашнего облака NextCloud в среде Linux, также установим базу данных PostgreSQL и Web-сервер Nginx с PHP-FPM. Установка будет производиться на чистую Ubuntu Server 20.04 LTS.
Системные требования для NextCloud:
- База данных: MySQL 5.7+, или MariaDB 10.2, или PostgreSQL 9.5+
- Веб-сервер: Apache с mod_php или php-fpm или nginx с php-fpm
- Php: 7.3+
- ОЗУ: 512Мб+ или 2ГБ+, если использовать пакета Collabora или OnlyOffice
Установка
Разобьем установку на части. Установим базу данных PostgreSQL, интерпретатор PHP, далее web-сервер Nginx, ну и последним пунктом наше облако NextCloud:
Установка PostgreSQL
Для установки базы данных в терминале набираем:
sudo apt install postgresql
Установка PHP
Для установки PHP для начала добавим более новый репозиторий:
sudo add-apt-repository ppa:ondrej/php
После этого устанавливаем PHP и необходимые зависимости для NextCloud.
Предупреждение: в данный момент NextCloud поддерживает PHP версии не выше 8.0
sudo apt install php8.0 php8.0-bcmath php8.0-bz2 php8.0-common php8.0-curl php8.0-fpm php8.0-gd php8.0-gmp php8.0-intl php8.0-mbstring php8.0-opcache php8.0-pgsql php8.0-imagick php8.0-xml php8.0-xmlrpc php8.0-zip php8.0-memcached memcached php-memcached
Установка Web-сервера Nginx
Для установки nginx для начала добавим, как и с PHP, более новый репозиторий:
sudo add-apt-repository ppa:ondrej/nginx
Теперь можно установить наш web-сервер. Устанавливать будем сборку в которую включен модуль для проигрывания потокового видео с нашего сервера (поддержка модуля mp4). Открываем терминал и набираем:
sudo apt install nginx-extras
Установка NextCloud
После всех пунктов выше приступим к установки нашего домашнего облака NextCloud. Для этого переходим в директорию /var/www
:
cd /var/www/
Скачиваем последнюю версию NextCloud (на момент написания статьи версия NextCloud была 21. /(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
# Добавление заголовка управления кэшем для файлов js и css
# Убедитесь, что он находится НИЖЕ блока PHP
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control «public, max-age=7200»;
# Добавляем заголовки связанные с безопасностью.
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection «1; mode=block»;
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
# Optional: Don’t log access to assets
access_log off;
}
# Настройка обработки для файлов данного типа
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
expires 6M; # Управление кэшем
access_log off; # Отключение логирования
}
# Настройки для обработки потокового видео
location ~ . (.+.php)(/.)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
expires max;
directio 10m;
limit_rate 1024m;
limit_rate_after 10m;
}
}
Адрес https://mynextcloud.ru измените на свой.
Далее создании ссылку на наш файл:
ln -s /etc/nginx/sites-available/nextcloud.conf /etc/nginx/sites-enabled/
удаляем дефолтный файл конфигурации:
rm /etc/nginx/sites-enabled/default
Проверяем все ли мы правильно сделали:
nginx -t
Если ошибку нет, то перезапускаем nginx
service nginx restart
Настройка PHP
Настроим PHP для работы с NextCloud. В терминале набираем:
sudo nano /etc/php/8.0/fpm/php.ini
Находим и редактируем следующие строки:
max_execution_time = 300 max_input_time = 600 memory_limit = 512M post_max_size = 20M upload_max_filesize = 40M # Настройка кэширования opcache. enable=1 opcache.enable_cli=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.revalidate_freq=1 opcache.save_comments=1
Настройка PostgreSQL
Сперва настроим наш PostgreSQL для прослушивания всех внутренних адресов сервера. Для этого открываем следующий файл:
sudo nano /etc/postgresql/14/main/postgresql.conf
Находим и редактируем данную строчку к такому виду:
listen_addresses = '*'
Теперь можно создать нашу БД для NextCloud, а также создадим пользователя БД и пароль для него. Подключаемся к postgresql:
sudo -u postgres psql
Создаем базу данных и пользователя для nextcloud
CREATE DATABASE nextcloud; # создаем БД CREATE USER usernxt WITH PASSWORD 'mypasswords'; # создаем пользователя и вводим пароль для него ALTER DATABASE nextcloud OWNER TO usernxt; GRANT ALL PRIVILEGES ON DATABASE nextcloud to usernxt; exit
Далее переходим по адресу нашего сервера (локальному или внешнему например: http://mynextcloud. ru
) и видим первоначальную установку NextCloud
Из скриншота видим, что на самом верху нам предлагается придумать учетную запись и пароль администратора nextcloud.
Далее идет поле для выбора каталога с данными. Данное поле отвечает за размещение всех данных пользователей в директории на сервере. Я оставляю без изменений.
Последняя группа полей ответственна за подключение к базе данных. Чуть выше мы создавали и настраивали БД PostgreSQL, вот эти данные и вводим сюда. И нажимаем кнопку продолжить.
Если все сделали правильно, то после обновления окна нам будет предложено войти в свою учетную запись.
Замечание: В панели администратора в пункте общие сведения Вы можете наблюдать различные ошибки и предупреждения от системы. Как их устранить я писал тут.
На этом наша настройка домашнего облака NextCloud завершается. Всем удачи!!!
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо!!!
RSS
Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
5
4
голоса
Рейтинг статьи
PHP: Установка/Настройка — Руководство
Изменение языка:
английскийбразильский португальскийкитайский (упрощенный)французскийнемецкийяпонскийрусскийиспанскийтурецкийДругое
Отправить запрос на вытягивание
Сообщить об ошибке
- Требования
- Установка
- Конфигурация среды выполнения
- Типы ресурсов
+ добавить примечание
Пользовательские заметки 5 заметок
вверх
вниз
34
MIhail-Klr в gmx dot net ¶
8 лет назад
Это случилось со мной также с PHP 5. 4.1
Копирование вызывающей DLL везде не сработало, и у меня не установлен Postgres на сервере, но я также планировал использовать PHP против разных версий Postgres, поэтому единственное решение, которое я нашел что сработало, так это поместить в httpd.conf следующую строку:
LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"
, но со ссылкой на libpq.dll, который поставляется в комплекте с PHP, например:
LoadFile "C:/php/libpq.dll"
После этого у меня все заработало.
(c) https://stackoverflow.com/users/1373641/dayron-armas-peña
из: https://stackoverflow.com/questions/551734/php-not-loading-php-pgsql-dll-on -окна/10439560#10439560
вверх
вниз
11
Нестор Дот Мартинес в ETB Дот Нетто Дот Ко ¶
13 лет назад
Если вы получили такое сообщение:
«Запуск Php: невозможно загрузить динамическую библиотеку «C:\php\ext\php_pgsql. dll»
1. В файле конфигурации измените порядок библиотек «php_exif.dll» и « php_mbstring.dll", таким образом, чтобы сначала вызывалась библиотека "php_mbstring.dll"
2. Скопируйте все библиотеки в папку "bin" вашей установки PostgreSQL и вставьте их в корневую папку Windows
3. Раскомментируйте строку «extension=php_pgsql.dll» 9.0040 4. Теперь вы должны увидеть на странице сгенерированный раздел "phpinfo()" PostgreSQL
вверх
вниз
2
Эмиль в примере точка com ¶
14 лет назад
Не удалось загрузить динамическую библиотеку «C:\\php\\ext\\php_pgsql.dll» — указанный модуль не найден.
другое решение:
скопировать libpq.dll/все файлы из zip (если у вас есть php из установщика)
добавить в httpd.conf:
#BEGIN PHP INSTALLER EDIT – УДАЛИТЬ ТОЛЬКО ПРИ УДАЛЕНИИ
PHPIniDir "c:/PHP/"
Loadfile "C:\php\php5ts.dll"
Loadfile "C:\php\libpq. dll"
LoadModule php5_module "c :/PHP/php5apache2_2.dll"
#END ИЗМЕНЕНИЯ УСТАНОВЩИКА PHP - УДАЛИТЬ ТОЛЬКО ПРИ УДАЛЕНИИ по умолчанию: extension_dir ="c:\PHP\ext" )
если это не работает, добавьте c:\php (путь php) к вашему пути Windows (и перезапустите)
проверено на php5.2.8 + apache2.2.3
вверх
вниз
-3
kouber в php dot net ¶
14 лет назад
Если вы получаете эту ошибку в Windows:
Невозможно загрузить динамическую библиотеку «C:/php/ext\\php_pgsql.dll» — указанный модуль не найден.
Попробуйте загрузить архив двоичных файлов PostgreSQL без установки с http://www.postgresql.org/ftp/binary/v8.3.5/win32/ (замените 8.3.5 последней стабильной версией) и скопируйте эти библиотеки DLL на C :/WINDOWS/system32/ :
comerr32.dll
gssapi32.dll
k5sprt32.dll
krb5_32.dll
libeay32.dll
libiconv2.dll
libintl3. dll
libpq.dll
ssleay32.dll
вверх
вниз
-13
некоторые доменные имена ¶
13 лет назад
Другое решение Windows XP для «Невозможно загрузить динамическую библиотеку« php_pgsql.dll »- указанный модуль не найден».
Добавьте путь к двоичным файлам postgres в системный путь поиска:
Щелкните правой кнопкой мыши «Мой компьютер», выберите «Свойства», вкладка «Дополнительно», кнопка «Переменные среды», раздел «Системные переменные», выберите «Путь», нажмите «Изменить» и добавьте путь к двоичные файлы postgres в конце, в моем случае это было "C:\Program Files\PostgreSQL\8.4\bin", а затем перезагрузите компьютер (или, по крайней мере, перезапустите процессы apache/php)
Обратите внимание, что системный путь может иметь несколько значений, разделенных точкой с запятой ";".
+ добавить примечание
PHP: Установка — руководство
Изменение языка:
английскийбразильский португальскийкитайский (упрощенный)французскийнемецкийяпонскийрусскийиспанскийтурецкийДругое
Отправить запрос на вытягивание
Сообщить об ошибке
Чтобы включить поддержку PostgreSQL,
—with-pgsql[=DIR] требуется при компиляции
PHP. DIR
— это базовый каталог установки PostgreSQL, по умолчанию
/usr/local/pgsql . Если общий объектный модуль
доступен, модуль PostgreSQL можно загрузить с помощью
директива расширения в php.ini или
дл()
функция.
+ добавить примечание
Пользовательские заметки 7 заметок
вверх
вниз
11
sean at cockreachlabs точка com ¶
6 лет назад
Начиная с PHP 7, в Ubuntu (т. е. 16+) вы можете запустить:
`sudo apt-get install php-pgsql`
вверх
вниз
7
Серджик ¶
13 лет назад
На сервере Windows, настроенном с помощью Apache, добавление следующей строки в httpd.conf для загрузки libpq.dll может сэкономить вам много времени:
LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"
Обратите внимание, что вам придется изменить папку в соответствии с путем установки и установленной версией PostgreSQL. Также обратите внимание, что не рекомендуется размещать Apache и PostgreSQL на одном сервере для рабочих сред.
Ура,
Серджик
вверх
вниз
-7
Анонимный ¶
6 лет назад
для php 7 у меня сработало «sudo apt install php7.0-pgsql»
вверх
вниз
-12
Анто Биниш Каспар ¶
13 лет назад
Простой способ установки в ubuntu(debain)
Просто запустите "apt-get install php5-pgsql"
вверх
вниз
-23
zonetejasmikel at yahoo dot com ¶
9 лет назад
если вы получаете
/pgsql.c:789: error: 'from' необъявлено (первое использование в этой функции)
и т. д. компиляция в linux это опечатка в определении файла pgsql.c
измените на этот
#if !HAVE_PQESCAPE_CONN
#define PQescapeStringConn(подключение, к, от, длина, ошибка) PQescapeString(к, от, длина)
#endif
вверх
вниз
-31
samuel+php dot net at dionne-riel dot com ¶
12 лет назад
В PHP 5.