Краткое руководство. Использование PHP для подключения и запроса данных в База данных Azure для PostgreSQL — отдельный сервер

Область применения: отдельный сервер Базы данных Azure для PostgreSQL

Внимание

База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".

В этом кратком руководстве объясняется, как подключиться к базе данных Azure для PostgreSQL с помощью приложения PHP. Здесь также показано, как использовать инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных. В этой статье предполагается, что у вас уже есть опыт разработки на PHP и вы только начали работу с базой данных Azure для PostgreSQL.

Необходимые компоненты

В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими материалами:

Установка PHP

Установите PHP на своем сервере или создайте веб-приложение Azure с PHP.

Windows

  • Скачайте PHP 7.1.4 (x64) непотокобезопасной версии.
  • Установите PHP и выполните настройку согласно инструкциям в руководстве по PHP.
  • В коде используется класс pgsql (ext/php_pgsql.dll), который устанавливается с PHP.
  • Включите расширение pgsql, изменив файл конфигурации php.ini. Как правило, он находится в папке C:\Program Files\PHP\v7.1\php.ini. Файл конфигурации должен содержать строку с текстом extension=php_pgsql.so. Если текст не отображается, добавьте его и сохраните файл. Если текст есть, но закомментирован префиксом в виде точки с запятой, раскомментируйте его, удалив точку с запятой.

Linux (Ubuntu)

  • Скачайте PHP 7.1.4 (x64) непотокобезопасной версии.
  • Установите PHP и выполните настройку согласно инструкциям в руководстве по PHP.
  • В коде используется класс pgsql (php_pgsql.so). Установите его, выполнив команду sudo apt-get install php-pgsql.
  • Включите расширение pgsql, изменив файл конфигурации /etc/php/7.0/mods-available/pgsql.ini. Файл конфигурации должен содержать строку с текстом extension=php_pgsql.so. Если текст не отображается, добавьте его и сохраните файл. Если текст есть, но закомментирован префиксом в виде точки с запятой, раскомментируйте его, удалив точку с запятой.

MacOS

Получение сведений о подключении

Получите сведения, необходимые для подключения к базе данных Azure.для PostgreSQL. Вам потребуется полное имя сервера и учетные данные для входа.

  1. Войдите на портал Azure.
  2. В меню слева на портале Azure выберите Все ресурсы и выполните поиск по имени созданного сервера (например, mydemoserver).
  3. Выберите имя сервера.
  4. Запишите имя сервера и имя для входа администратора сервера с панели сервера Обзор. Если вы забыли свой пароль, можно также сбросить пароль с помощью этой панели. Имя сервера службы

Подключение и создание таблицы

Используйте приведенный ниже код для подключения и создайте таблицу с помощью инструкции SQL CREATE TABLE. Добавьте строки в таблицу, применив инструкцию SQL INSERT INTO.

Код вызывает метод pg_connect(), чтобы подключиться к базе данных Azure для PostgreSQL. Затем он вызывает метод pg_query() несколько раз, чтобы выполнить несколько команд, и метод pg_last_error(), чтобы проверить сведения, если каждое выполнение завершилось ошибкой. После этого вызывается метод mysqli_close, чтобы разорвать подключение.

Замените значения параметров $host, $database, $user и $password своими значениями.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "mylogin@mydemoserver";
	$password = "<server_admin_password>";

	// Initialize connection object.
	$connection = pg_connect("host=$host dbname=$database user=$user password=$password") 
		or die("Failed to create connection to database: ". pg_last_error(). "<br/>");
	print "Successfully created connection to database.<br/>";

	// Drop previous table of same name if one exists.
	$query = "DROP TABLE IF EXISTS inventory;";
	pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
	print "Finished dropping table (if existed).<br/>";

	// Create table.
	$query = "CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);";
	pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
	print "Finished creating table.<br/>";

	// Insert some data into table.
	$name = '\'banana\'';
	$quantity = 150;
	$query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
	pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");

	$name = '\'orange\'';
	$quantity = 154;
	$query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
	pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");

	$name = '\'apple\'';
	$quantity = 100;
	$query = "INSERT INTO inventory (name, quantity) VALUES ($name, $quantity);";
	pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error()). "<br/>";

	print "Inserted 3 rows of data.<br/>";

	// Closing connection
	pg_close($connection);
?>

Чтение данных

Используйте указанный ниже код с инструкцией SQL SELECT для подключения и чтения данных.

Код вызывает метод pg_connect(), чтобы подключиться к базе данных Azure для PostgreSQL. Затем он вызывает метод pg_query() для выполнения команды SELECT, сохраняя результаты в результирующем наборе, и метод pg_last_error(), чтобы проверить сведения, если произошла ошибка. Чтобы считать данные результирующего набора, в цикле вызывается метод pg_fetch_row() для каждой строки. Данные строки извлекаются в виде массива $row с одним значением данных для каждого столбца в каждой позиции массива. Чтобы освободить результирующий набор, вызывается метод pg_free_result(). После этого вызывается метод mysqli_close, чтобы разорвать подключение.

Замените значения параметров $host, $database, $user и $password своими значениями.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "mylogin@mydemoserver";
	$password = "<server_admin_password>";

	// Initialize connection object.
	$connection = pg_connect("host=$host dbname=$database user=$user password=$password")
				or die("Failed to create connection to database: ". pg_last_error(). "<br/>");

	print "Successfully created connection to database. <br/>";

	// Perform some SQL queries over the connection.
	$query = "SELECT * from inventory";
	$result_set = pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error(). "<br/>");
	while ($row = pg_fetch_row($result_set))
	{
		print "Data row = ($row[0], $row[1], $row[2]). <br/>";
	}

	// Free result_set
	pg_free_result($result_set);

	// Closing connection
	pg_close($connection);
?>

Обновление данных

Используйте указанный ниже код с инструкцией SQL UPDATE для подключения и обновления данных.

Код вызывает метод pg_connect(), чтобы подключиться к базе данных Azure для PostgreSQL. Затем он вызывает метод pg_query(), чтобы выполнить команду, и метод pg_last_error(), чтобы проверить сведения, если произошла ошибка. После этого вызывается метод mysqli_close, чтобы разорвать подключение.

Замените значения параметров $host, $database, $user и $password своими значениями.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "mylogin@mydemoserver";
	$password = "<server_admin_password>";

	// Initialize connection object.
	$connection = pg_connect("host=$host dbname=$database user=$user password=$password")
				or die("Failed to create connection to database: ". pg_last_error(). ".<br/>");

	print "Successfully created connection to database. <br/>";

	// Modify some data in table.
	$new_quantity = 200;
	$name = '\'banana\'';
	$query = "UPDATE inventory SET quantity = $new_quantity WHERE name = $name;";
	pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error(). ".<br/>");
	print "Updated 1 row of data. </br>";

	// Closing connection
	pg_close($connection);
?>

Удаление данных

Используйте указанный ниже код с инструкцией SQL DELETE для подключения и чтения данных.

Код вызывает метод pg_connect(), чтобы подключиться к базе данных Azure для PostgreSQL. Затем он вызывает метод pg_query(), чтобы выполнить команду, и метод pg_last_error(), чтобы проверить сведения, если произошла ошибка. После этого вызывается метод mysqli_close, чтобы разорвать подключение.

Замените значения параметров $host, $database, $user и $password своими значениями.

<?php
	// Initialize connection variables.
	$host = "mydemoserver.postgres.database.azure.com";
	$database = "mypgsqldb";
	$user = "mylogin@mydemoserver";
	$password = "<server_admin_password>";

	// Initialize connection object.
	$connection = pg_connect("host=$host dbname=$database user=$user password=$password")
			or die("Failed to create connection to database: ". pg_last_error(). ". </br>");

	print "Successfully created connection to database. <br/>";

	// Delete some data from table.
	$name = '\'orange\'';
	$query = "DELETE FROM inventory WHERE name = $name;";
	pg_query($connection, $query) 
		or die("Encountered an error when executing given sql statement: ". pg_last_error(). ". <br/>");
	print "Deleted 1 row of data. <br/>";

	// Closing connection
	pg_close($connection);
?>

Очистка ресурсов

Чтобы очистить все ресурсы, используемые во время этого краткого руководства, удалите группу ресурсов с помощью следующей команды:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Следующие шаги