php подключение к базе данных postgresql
PHP 5.4.39 в связке с PostgreSQL – настройка подключения и описание основных функций
В материале мы рассмотрим возможность взаимодействия языка программирования PHP версии 5.4.39 с СУБД PostgreSQL 9.1.13, мы научимся связывать PHP и PostgreSQL, узнаем, какие есть функции PHP для работы с PostgreSQL, а также разберем несколько примеров использования этих функций.
Для тех, кто увлекается web-программированием и в частности программированием на PHP не секрет что самой распространенной связкой языка и СУБД является связка PHP и MySQL, но иногда возникает необходимость взаимодействовать и с другими базами, например с PostgreSQL. Кстати, PHP поддерживает работу не только с MySQL и PostgreSQL, но еще и со многими другими СУБД, об этом мы говорили в материале PHP и базы данных. А сегодня мы подробней остановимся именно на работе с PostgreSQL, и начнем мы, конечно же, с вопроса как настроить взаимодействие PHP и PostgreSQL.
Примечание! В качестве операционной системы у нас будет выступать Windows 7, в качестве web-сервера Apache 2.2.2, версия PHP 5.4.39, версия PostgreSQL 9.1.13.
Настройка подключения PHP и PostgreSQL
Первое что нужно сделать, это убедиться, что в каталоге с PHP присутствует библиотека libpq.dll. Затем в файле php.ini найди строку, отвечающую за подключение модуля PostgreSQL и раскомментировать ее, а именно
Перезапускаем Apache и запускаем phpinfo(), и если Вы найдете блок pgsql, то все, библиотеку PostgreSQL Вы подключили.
Если у Вас нет данного раздела, то попробуйте скопировать libpq.dll из каталога PostgreSQL (по умолчанию C:\Program Files\PostgreSQL и так далее) в каталог с PHP с заменой старого, и перезапустите Apache еще раз.
Основные функции PHP для работы с PostgreSQL
pg_connect – открывает соединение с базой данных, возвращает указатель соединения.
pg_query – выполняет запрос к базе данных, возвращает результат запроса.
pg_fetch_assoc – преобразовывает результат запроса в ассоциативный массив.
pg_close – закрывает соединение с базой данных.
Пример работы перечисленных функций
В данном случае мы подключаемся к серверу, который расположен локально, по порту 5432, к базе testbase под пользователем admin с паролем 12345 и выполняем запрос (просто статические данные) к базе данных, затем мы преобразовываем результат в ассоциативный массив, выводим на экран и закрываем соединение.
pg_num_rows – возвращает количество строк в наборе данных, который вернул нам запрос.
pg_num_fields — возвращает количество полей в наборе данных, который вернул нам запрос.
pg_fetch_result – возвращает одно значение из результата запроса.
pg_fetch_row — преобразовывает результат запроса в массив.
pg_fetch_object – преобразовывает результат запроса в объект.
pg_field_name – возвращает название поля по его номеру.
pg_field_num – возвращает номер поля по его названию.
pg_version – возвращает сведения о протоколе взаимодействия, версии клиента и версии сервера в виде массива.
pg_escape_string – экранирует спецсимволы в строке.
pg_dbname – возвращает название базы данных.
pg_affected_rows – возвращает количество затронутых строк при update, insert и delete.
На этом я предлагаю заканчивать, так как для основ этого достаточно, описание всех функций Вы можете найти на сайте PHP вот здесь, ну все, пока!
Краткое руководство. Подключение к службе «База данных Azure для PostgreSQL — отдельный сервер» и выполнение запроса данных с помощью PHP
В этом кратком руководстве объясняется, как подключиться к базе данных Azure для PostgreSQL с помощью приложения PHP. Здесь также показано, как использовать инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных. В этой статье предполагается, что у вас уже есть опыт разработки на PHP и вы только начали работу с базой данных Azure для PostgreSQL.
Предварительные требования
В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими материалами:
Установка PHP
Установите PHP на своем сервере или создайте веб-приложение Azure с PHP.
Windows
Linux (Ubuntu)
MacOS
Получение сведений о подключении
Получите сведения, необходимые для подключения к базе данных Azure.для PostgreSQL. Вам потребуется полное имя сервера и учетные данные для входа.
Подключение и создание таблицы
Используйте приведенный ниже код для подключения и создайте таблицу с помощью инструкции SQL CREATE TABLE. Добавьте строки в таблицу, применив инструкцию SQL INSERT INTO.
Код вызывает метод pg_connect(), чтобы подключиться к базе данных Azure для PostgreSQL. Затем он вызывает метод pg_query() несколько раз, чтобы выполнить несколько команд, и метод pg_last_error(), чтобы проверить сведения, если каждое выполнение завершилось ошибкой. После этого вызывается метод mysqli_close, чтобы разорвать подключение.
Чтение данных
Используйте указанный ниже код с инструкцией SQL SELECT для подключения и чтения данных.
Обновление данных
Используйте указанный ниже код с инструкцией SQL UPDATE для подключения и обновления данных.
Код вызывает метод pg_connect(), чтобы подключиться к базе данных Azure для PostgreSQL. Затем он вызывает метод pg_query(), чтобы выполнить команду, и метод pg_last_error(), чтобы проверить сведения, если произошла ошибка. После этого вызывается метод mysqli_close, чтобы разорвать подключение.
Удаление данных
Используйте указанный ниже код с инструкцией SQL DELETE для подключения и чтения данных.
Код вызывает метод pg_connect(), чтобы подключиться к базе данных Azure для PostgreSQL. Затем он вызывает метод pg_query(), чтобы выполнить команду, и метод pg_last_error(), чтобы проверить сведения, если произошла ошибка. После этого вызывается метод mysqli_close, чтобы разорвать подключение.
Очистка ресурсов
Чтобы очистить все ресурсы, используемые во время этого краткого руководства, удалите группу ресурсов с помощью следующей команды:
pg_connect — Открывает соединение с базой данных PostgreSQL
Описание
Список параметров
Строка connection_string может быть пустой строкой, или содержать несколько параметров разделенных пробелами. Каждый параметр указывается как keyword = value. Пробелы вокруг знака равно необязательны. Пустые строки в качестве значения или значения, содержащие пробелы отделяются одинарными кавычками, как например, keyword = ‘a value’. Для задания одинарных кавычек и обратных слешей в качестве значений их необходимо экранировать обратным слешем, то есть \’ и \\.
Параметр options служит для установки параметров командной строки, которые обработаны сервером.
Возвращаемые значения
Список изменений
Примеры
Пример #1 Использование функции pg_connect()
= pg_connect ( «dbname=mary» );
//подключиться к базе «mary»
$dbconn2 = pg_connect ( «host=localhost port=5432 dbname=mary» );
//подключиться к базе «mary» на хосте «localhost», порт «5432»
$dbconn3 = pg_connect ( «host=sheep port=5432 dbname=mary user=lamb password=foo» );
//подключиться к базе «mary» на хосте «sheep», используя имя пользователя и пароль
$dbconn5 = pg_connect ( «host=localhost options=’—client_encoding=UTF8′» );
//подключиться к базе на хосте «localhost» и передать параметр командной строки, задающий кодировку UTF-8
?>
Смотрите также
pg_pconnect
(PHP 4, PHP 5, PHP 7, PHP 8)
pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
Описание
pg_pconnect() устанавливает соединение с базой данных PostgreSQL. Возвращает ресурс соединения необходимый для работы большинства функций PostgreSQL.
Список параметров
Возвращаемые значения
Примеры
Пример #1 Пример использования pg_pconnect()
= pg_pconnect ( «dbname=mary» );
//подключиться к базе «mary»
$dbconn2 = pg_pconnect ( «host=localhost port=5432 dbname=mary» );
// подключиться к базе «mary» на хосте «localhost», порт «5432»
$dbconn3 = pg_pconnect ( «host=sheep port=5432 dbname=mary user=lamb password=foo» );
//подключиться к базе «mary» на хосте «sheep», используя имя пользователя и пароль
Смотрите также
User Contributed Notes 10 notes
If you have many concurrent connections to your database, you should use the PostgreSQL connection pooler PgBouncer (developed by the Skype-team). When using pgbouncer, make sure you use pg_connect and NOT pg_pconnect. Also, make sure you close your connections with pg_close.
* PostgreSQL pooling article by Last.fm:
http://www.last.fm/user/Russ/journal/2008/02/21
/zd_postgres_connection_pools:_pgpool_vs._pgbouncer
As of Aug 2007, some suggestions from the postgresql forums
on pg_pconnect(), faster postgres connections, and connection pooling:
A contribution to the transaction issue raised by «garrett at bgb dot cc».
The author describes a hint to avoid the scenario above:
You can create a function for resolving transactions and locks erroneously not closed. For invoking the function after execution of a script it has to be registered with the function register_shutdown_function():
How to reset persistent connections:
If a transaction is in progress when page processing ends, is it aborted before the connection placed bak in the pool? Or is the connection added «as is»?
It would seem that the correct thing to do is to always ‘ABORT’ before adding to the pool.
As a note, this would be a good time to check and see if the connection is still open before readding it. Thus allowing closed connections to be cleaned up over time, instead of hanging around for ever as they do now.
Требования к разработке и установке
Чтобы установить PostgreSQL на Linux и Windows, мы обсудили здесь подробное описание процесса установки.
Вы можете использовать веб-сервер Apache, PHP, PostgreSQL и phpPgAdmin (который является отличным инструментом для управления проектами PHP-PostgreSQL) для создания базового веб-приложения.
Подключайтесь к PostgreSQL с помощью собственных функций PHP
Предположим, у нас есть следующая таблица (книга) в базе данных «postgres». Вот структура таблицы:
PHP предоставляет множество функций для работы непосредственно с базами данных PostgreSQL. Вот некоторые функции:
pg_connect : функция используется для открытия соединения PostgreSQL.
Версия : (PHP 4, PHP 5)
Возвращаемое значение : ресурс соединения PostgreSQL в случае успеха, FALSE в случае ошибки.
pg_query: выполнить запрос
Версия : (PHP 4> = 4.2.0, PHP 5)
Возвращаемое значение : ресурс результата запроса в случае успеха или FALSE в случае ошибки.
Вставить данные в таблицу с помощью PHP
Мы создадим HTML-форму и PHP-скрипт для вставки данных в таблицу «book». Вот код (имя файла insert.php):
Вот как выглядит форма для вставки данных:
Используйте эту форму, чтобы ввести некоторые данные в таблицу «книга».
Получение и обновление данных с помощью PHP
На следующем шаге мы создадим форму, чтобы мы могли видеть детали записей книги и обновлять существующие данные таблицы «книга». Для этого мы создадим форму, в которой пользователь может указать идентификатор книги, и он покажет всю информацию, хранящуюся в базе данных, относительно этой конкретной книги. Итак, вы узнаете, как получать данные из таблицы, как отображать эти данные с помощью PHP и как обновлять данные.
Вот код (имя файла enter-bookid):
Соединитесь с PostgreSQL, используя PDO (объекты данных PHP)
Начиная с версии 5.1, PHP предоставляет новую библиотеку абстракций подключения к базе данных, объекты данных PHP или PDO. PDO абстрагирует доступ к базе данных и позволяет использовать код, который может обрабатывать различные типы баз данных.
Обработка ошибок подключения:
Если есть какие-либо ошибки соединения, объект PDOException будет брошен. Вы можете перехватить исключение, если хотите обработать условие ошибки, или оставить его глобальному обработчику исключений, который можно настроить с помощью set_exception_handler ().
Вот пример для обработки ошибок:
Запрос:
Итак, вы узнали, как вставлять данные из формы HTML и как получать, отображать и обновлять данные в PostgreSQL с помощью PHP.