Szybki start: nawiązywanie połączeń z danymi i wykonywanie na nich zapytań w usłudze Azure Database for PostgreSQL — pojedynczy serwer przy użyciu języka PHP

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

Ważne

Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.

Ten przewodnik Szybki start przedstawia sposób nawiązywania połączeń z usługą Azure Database for PostgreSQL przy użyciu aplikacji języka PHP. Pokazano w nim, jak używać instrukcji języka SQL w celu wysyłania zapytań o dane oraz wstawiania, aktualizowania i usuwania danych w bazie danych. W krokach w tym artykule założono, że wiesz już, jak programować za pomocą języka PHP, i dopiero zaczynasz pracę z usługą Azure Database for PostgreSQL.

Wymagania wstępne

Ten przewodnik Szybki start jako punktu wyjścia używa zasobów utworzonych w jednym z tych przewodników:

Zainstaluj środowisko PHP.

Zainstaluj język PHP na własnym serwerze lub utwórz aplikację internetową, która zawiera język PHP.

Windows

  • Pobierz bezpieczny, niestanowiący zagrożenia język PHP w wersji 7.1.4 (x64).
  • Zainstaluj język PHP i zapoznaj się z podręcznikiem języka PHP w celu przeprowadzenia dalszej konfiguracji.
  • Kod używa klasy pgsql (ext/php_pgsql.dll) uwzględnionej w instalacji języka PHP.
  • Włącz rozszerzenie pgsql, edytując plik konfiguracji php.ini, który zazwyczaj znajduje się w folderze C:\Program Files\PHP\v7.1\php.ini. Plik konfiguracji powinien zawierać wiersz z tekstem extension=php_pgsql.so. Jeśli nie jest wyświetlany, dodaj tekst i zapisz plik. Jeśli tekst jest wyświetlany, ale zawiera komentarz z prefiksem ze średnikiem, usuń komentarz z tekstu, usuwając średnik.

Linux (Ubuntu)

  • Pobierz bezpieczny, niestanowiący zagrożenia język PHP w wersji 7.1.4 (x64).
  • Zainstaluj język PHP i zapoznaj się z podręcznikiem języka PHP w celu przeprowadzenia dalszej konfiguracji.
  • Kod używa klasy pgsql (php_pgsql.so). Zainstaluj ją, uruchamiając element sudo apt-get install php-pgsql.
  • Włącz rozszerzenie pgsql, edytując plik konfiguracji /etc/php/7.0/mods-available/pgsql.ini. Plik konfiguracji powinien zawierać wiersz z tekstem extension=php_pgsql.so. Jeśli nie jest wyświetlany, dodaj tekst i zapisz plik. Jeśli tekst jest wyświetlany, ale zawiera komentarz z prefiksem ze średnikiem, usuń komentarz z tekstu, usuwając średnik.

MacOS

Pobieranie informacji o połączeniu

Uzyskaj parametry połączenia potrzebne do nawiązania połączenia z usługą Azure Database for PostgreSQL. Potrzebna jest w pełni kwalifikowana nazwa serwera i poświadczenia logowania.

  1. Zaloguj się w witrynie Azure Portal.
  2. W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Wszystkie zasoby, a następnie wyszukaj utworzony serwer (na przykład mydemoserver).
  3. Wybierz nazwę serwera.
  4. Po przejściu do panelu Przegląd serwera zanotuj nazwę serwera i nazwę logowania administratora serwera. Jeśli zapomnisz hasła, możesz również je zresetować z poziomu tego panelu. Nazwa serwera usługi Azure Database for PostgreSQL

Łączenie i tworzenie tabeli

Użyj poniższego kodu w celu nawiązania połączenia i utworzenia tabeli za pomocą instrukcji CREATE TABLE języka SQL, a następnie instrukcji INSERT INTO języka SQL, aby dodać wiersze do tabeli.

Kod wywołuje metodę pg_connect(), aby nawiązać połączenie z usługą Azure for PostgreSQL. Następnie kod wywołuje metodę pg_query() kilka razy w celu uruchomienia wielu poleceń i metodę pg_last_error() w celu sprawdzenia szczegółów, jeśli za każdym razem występuje błąd. W kolejnym kroku kod wywołuje metodę pg_close() w celu zamknięcia połączenia.

Zastąp parametry $host, $database, $user i $password własnymi wartościami.

<?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);
?>

Odczyt danych

Użyj poniższego kodu, aby nawiązać połączenie i odczytać dane za pomocą instrukcji SELECT języka SQL.

Kod wywołuje metodę pg_connect(), aby nawiązać połączenie z usługą Azure for PostgreSQL. Następnie kod wywołuje metodę pg_query() w celu uruchomienia polecenia SELECT, zachowując wyniki w zestawie wyników, i metodę pg_last_error() w celu sprawdzenia błędów, jeśli wystąpił błąd. Aby odczytać zestaw wyników, metoda pg_fetch_row() jest wywoływana w postaci pętli, jeden raz dla każdego wiersza, a dane są pobierane w tablicy $row, z jedną wartością danych na kolumnę w każdej pozycji tablicy. Aby zwolnić zestaw wyników, należy wywołać metodę pg_free_result(). W kolejnym kroku kod wywołuje metodę pg_close() w celu zamknięcia połączenia.

Zastąp parametry $host, $database, $user i $password własnymi wartościami.

<?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);
?>

Aktualizowanie danych

Użyj poniższego kodu, aby nawiązać połączenie i zaktualizować dane za pomocą instrukcji UPDATE języka SQL.

Kod wywołuje metodę pg_connect(), aby nawiązać połączenie z usługą Azure for PostgreSQL. Następnie kod wywołuje metodę pg_query() w celu uruchomienia polecenia i metodę pg_last_error() w celu sprawdzenia szczegółów, jeśli wystąpił błąd. W kolejnym kroku kod wywołuje metodę pg_close() w celu zamknięcia połączenia.

Zastąp parametry $host, $database, $user i $password własnymi wartościami.

<?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);
?>

Usuwanie danych

Użyj poniższego kodu, aby nawiązać połączenie i odczytać dane za pomocą instrukcji DELETE języka SQL.

Kod wywołuje metodę pg_connect(), aby nawiązać połączenie z usługą Azure for PostgreSQL. Następnie kod wywołuje metodę pg_query() w celu uruchomienia polecenia i metodę pg_last_error() w celu sprawdzenia szczegółów, jeśli wystąpił błąd. W kolejnym kroku kod wywołuje metodę pg_close() w celu zamknięcia połączenia.

Zastąp parametry $host, $database, $user i $password własnymi wartościami.

<?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);
?>

Czyszczenie zasobów

Aby wyczyścić wszystkie zasoby używane w tym przewodniku Szybki start, usuń grupę zasobów przy użyciu następującego polecenia:

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

Następne kroki