Php postgresql connect
pg_connect — Открывает соединение с базой данных PostgreSQL
(PHP 4, PHP 5, PHP 7)
pg_connect — Открывает соединение с базой данных PostgreSQL
Описание
pg_connect() открывает соединение с базой данных PostgreSQL, определенное строкой connection_string .
При повторном вызове функции pg_connect() с теми же значениями параметров в connection_string функция вернет существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра connect_type .
Прежний синтаксис с множеством параметров $conn = pg_connect(«host», «port», «options», «tty», «dbname») считается устаревшим.
Список параметров
Строка connection_string может быть пустой строкой, или содержать несколько параметров разделенных пробелами. Каждый параметр указывается как keyword = value. Пробелы вокруг знака равно необязательны. Пустые строки в качестве значения или значения, содержащие пробелы отделяются одинарными кавычками, как например, keyword = ‘a value’. Для задания одинарных кавычек и обратных слешей в качестве значений их необходимо экранировать обратным слешем, то есть ‘ и \.
Список основных ключевых слов: host , hostaddr , port , dbname (значение по умолчанию для параметра user ), user , password , connect_timeout , options , tty (игнорируется), sslmode , requiressl (устарело в связи с использованием параметра sslmode ), и service . Какие из этих аргументов будут обработаны, зависит от версии PostgreSQL.
Параметр options служит для установки параметров командной строки, которые обработаны сервером.
Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW , будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.
Если передана константа PGSQL_CONNECT_ASYNC , то соединение устанавливается асинхронным. Состояние соединения можно проверить с помощью функций pg_connect_poll() или pg_connection_status() .
Возвращаемые значения
Ресурс соединения с базой данных PostgreSQL либо FALSE , если подключиться не удалось.
Список изменений
Версия | Описание |
---|---|
5.6.0 | Добавлена поддержка константы PGSQL_CONNECT_ASYNC для параметра connect_type . |
Примеры
Пример #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», используя имя пользователя и пароль
$conn_string = «host=sheep port=5432 dbname=test user=lamb password=bar» ;
$dbconn4 = pg_connect ( $conn_string );
//подключиться к базе «test» на хосте «sheep», используя имя пользователя и пароль
$dbconn5 = pg_connect ( «host=localhost options=’—client_encoding=UTF8′» );
//подключиться к базе на хосте «localhost» и передать параметр командной строки, задающий кодировку UTF-8
?>
Смотрите также
- pg_pconnect() — Открывает постоянное соединение с сервером PostgreSQL
- pg_close() — Закрывает соединение с базой данных PostgreSQL
- pg_host() — Возвращает имя хоста, соответствующего подключению
- pg_port() — Возвращает номер порта, соответствующий заданному соединению
- pg_tty() — Возвращает имя терминала TTY, связанное с соединением
- pg_options() — Получение параметров соединения с сервером баз данных
- pg_dbname() — Определяет имя базы данных
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 FilesPostgreSQL и так далее) в каталог с 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 вот здесь, ну все, пока!
pg_connect
(PHP 4, PHP 5, PHP 7)
pg_connect — Открывает соединение с базой данных PostgreSQL
Описание
pg_connect() открывает соединение с базой данных PostgreSQL, определенное строкой connection_string .
При повторном вызове функции pg_connect() с теми же значениями параметров в connection_string функция вернет существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра connect_type .
Прежний синтаксис с множеством параметров $conn = pg_connect(«host», «port», «options», «tty», «dbname») считается устаревшим.
Список параметров
Строка connection_string может быть пустой строкой или содержать несколько параметров, разделенных пробелами. Каждый параметр указывается как keyword = value. Пробелы вокруг знака «равно» необязательны. Пустые строки в качестве значения или значения, содержащие пробелы отделяются одинарными кавычками, как например, keyword = ‘a value’. Для записи одинарных кавычек и обратных слешей в качестве значений, их необходимо экранировать обратным слешем, то есть ‘ и \.
Список основных ключевых слов: host , hostaddr , port , dbname (значение по умолчанию для параметра user ), user , password , connect_timeout , options , tty (игнорируется), sslmode , requiressl (устарело в связи с использованием параметра sslmode ), и service . Какие из этих аргументов будут обработаны, зависит от версии PostgreSQL.
Параметр options служит для установки параметров командной строки, которые обработаны сервером.
Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW , будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.
Если передана константа PGSQL_CONNECT_ASYNC , то соединение устанавливается асинхронным. Состояние соединения можно проверить с помощью функций pg_connect_poll() или pg_connection_status() .
Возвращаемые значения
Ресурс соединения с базой данных PostgreSQL либо FALSE , если подключиться не удалось.
Список изменений
Версия | Описание |
---|---|
5.6.0 | Добавлена поддержка константы PGSQL_CONNECT_ASYNC для параметра connect_type . |
Примеры
Пример #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», используя имя пользователя и пароль
$conn_string = «host=sheep port=5432 dbname=test user=lamb password=bar» ;
$dbconn4 = pg_connect ( $conn_string );
//подключиться к базе «test» на хосте «sheep», используя имя пользователя и пароль
$dbconn5 = pg_connect ( «host=localhost options=’—client_encoding=UTF8′» );
//подключиться к базе на хосте «localhost» и передать параметр командной строки, задающий кодировку UTF-8
?>
Смотрите также
- pg_pconnect() — Открывает постоянное соединение с сервером PostgreSQL
- pg_close() — Закрывает соединение с базой данных PostgreSQL
- pg_host() — Возвращает имя хоста, соответствующего подключению
- pg_port() — Возвращает номер порта, соответствующий заданному соединению
- pg_tty() — Возвращает имя терминала TTY, связанное с соединением
- pg_options() — Получение параметров соединения с сервером баз данных
- pg_dbname() — Определяет имя базы данных
Connect to PostgreSQL using PHP
Posted by: Gabriel Canepa in PostgreSQL October 28th, 2016 0 Views
This article is part of our Academy Course titled PostgreSQL Database Tutorial.
In this course, we provide a compilation of PostgreSQL tutorials that will help you set up and run your own database management system. We cover a wide range of topics, from installation and configuration, to custom commands and datatypes. With our straightforward tutorials, you will be able to get your own projects up and running in minimum time. Check it out here!
After we have learned how to set up and configure PostgreSQL for a variety of scenarios, having a database and populating it with data will not be of any use until we can retrieve it and use it in some way. Today, using a mobile-friendly web application is the most common way to accomplish this goal.
In this tutorial we will explain how to connect to our PostgreSQL database server using PHP, a popular server-side scripting language, how to retrieve data, and how to display it in a web page. Using this foundation, you will be able to go on to create more robust applications that make use of PostgreSQL and PHP.
1. Installing the software
As we just mentioned, we will use PHP to connect to the database server and to display the results of a query in a web page. Before we even start writing the application, we will need to install PHP and some additional packages – including the Apache web server. To do this in an Ubuntu 16.04 server with IP 192.168.0.54, use the following command:
After the installation is complete, create a php file named info.php under /var/www/html with the following three lines. This will help us to verify that PHP has been installed along with the PostgreSQL dependencies:
Then browse to 192.168.0.54/info.php and look for the section with the PostgreSQL details. You should find that the PDO driver is enabled and that PHP is supporting our RDBMS, as shown in Fig. 1:
Figure 1 – Checking the status of PostgreSQL-related PHP components
Now we’re ready to start writing our simple, yet functional PHP-based application.
2. Connecting to the database server
The first thing that we must do is ensure PHP can connect to the database server. Create a file named con.php under /var/www/html with the following contents:
For security purposes, set the appropriate ownership to the Linux account postgres (the user the database service runs as) and add the www-data account to the postgres group. This will allow Apache to read this file:
Now go to 192.168.0.54/con.php and make sure the connection to the database is successful before proceeding:
Figure 2 – Verifying database connection via PHP
If you get a blank page instead of the confirmation message shown in Fig. 2, inspect the Apache logs to troubleshoot. A missing semicolon or a misplaced quote can cause the connection to fail.
3. Writing the application
To begin, we will comment out the following line in con.php:
and insert the following lines below it. Please note that we will use a very simple query that will retrieve city names and the district it belongs to in Argentina (you will later be able to change it to a more complicated query using Common Table Expressions, for example):
The con.php file should now look as seen in Fig. 3:
Figure 3 – The connection file
Save the changes and grant privileges on the city table for the scg user. Note that you’ll have to do this from the PostgreSQL prompt:
Next, go to 192.168.0.54/con.php. You should see the results of the query in JSON format (see Fig. 4):
Figure 4 – Query results in JSON format
Now that we have successfully 1) connected to the database server, and 2) retrieved records into a JSON array, we will explain how to display this information into a mobile-friendly web page.
4. Creating a mobile-friendly web page
Most web developers nowadays use a robust HTML5/CSS/Javascript framework called Bootstrap to write mobile-friendly applications very easily. Though a full discussion about Bootstrap (and the HTML5-related technologies) is out of the scope of this article, it is sufficient to say that one of its distinguishing characteristics is that it divides the viewport in a 12-column grid.
It is up to the developer to decide how many columns will be assigned to a particular piece of content for xs (extra small, i.e. cell phones), sm (small, i.e. tablets and ipads), md (medium, i.e. laptops), and lg or large devices (high resolution monitors). In this tutorial we will assume that we desire to show the city and district fields using 6 columns each in small devices (sm) and up. For extra small screens, city will stack on top of district, as we will see later.
To do this, create a file named index.php in the same location as con.php and insert the following lines into it:
As you can see, this simple page uses a well-known Javascript library called jQuery to make an Ajax call to con.php and retrieve the results. Again, an adequate discussion about jQuery, Ajax, and Javascript is out of the scope of this article, but you can find some very valuable information on W3schools.
When you browse to 192.168.0.54/index.php, the result should be similar to Fig. 5:
Figure 5 – Displaying the web page with the results of the query
Feel free to resize your browser’s window to see the visualization changes as the viewport changes.
5. Summary
If you followed this tutorial carefully, congratulations! You have set connected to your PostgreSQL server using PHP and displayed data from your database in a mobile-friendly web page. Hopefully this will give you the foundation to create more sophisticated applications.