Używanie języka PHP z usługą Azure Database for MySQL — serwer elastyczny

DOTYCZY: Azure Database for MySQL — serwer elastyczny

W tym przewodniku Szybki start pokazano, jak nawiązać połączenie z elastycznym serwerem usługi Azure Database for MySQL przy użyciu aplikacji 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 tym artykule założono, że wiesz już, jak programować przy użyciu języka PHP i dopiero zaczynasz pracę z elastycznym serwerem usługi Azure Database for MySQL.

Wymagania wstępne

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

Przygotowywanie stacji roboczej klienta

  1. Jeśli serwer elastyczny został utworzony z dostępem prywatnym (integracja z siecią wirtualną), musisz nawiązać połączenie z serwerem z zasobu w tej samej sieci wirtualnej co serwer. Możesz utworzyć maszynę wirtualną i dodać ją do sieci wirtualnej utworzonej przy użyciu serwera elastycznego. Zapoznaj się z artykułem Tworzenie elastycznej sieci wirtualnej serwera usługi Azure Database for MySQL i zarządzanie nią przy użyciu interfejsu wiersza polecenia platformy Azure.

  2. Jeśli serwer elastyczny został utworzony przy użyciu dostępu publicznego (dozwolone adresy IP), możesz dodać lokalny adres IP do listy reguł zapory na serwerze. Zobacz Tworzenie reguł zapory serwera elastycznego usługi Azure Database for MySQL i zarządzanie nimi przy użyciu interfejsu wiersza polecenia platformy Azure.

Zainstaluj środowisko PHP.

Zainstaluj język PHP na własnym serwerze lub utwórz aplikację internetową, która zawiera język PHP. Zapoznaj się z artykułem Tworzenie reguł zapory i zarządzanie nimi, aby dowiedzieć się, jak tworzyć reguły zapory.

  1. Pobierz język PHP w wersji 7.1.4.
  2. Zainstaluj język PHP i zapoznaj się z podręcznikiem języka PHP w celu przeprowadzenia dalszej konfiguracji.

Pobieranie informacji o połączeniu

Uzyskaj informacje o połączeniu potrzebne do nawiązania połączenia z wystąpieniem serwera elastycznego usługi Azure Database for MySQL. 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.

Połączenie do serwera elastycznego przy użyciu protokołu TLS/SSL w języku PHP

Aby nawiązać zaszyfrowane połączenie z serwerem elastycznym za pośrednictwem protokołu TLS/SSL z aplikacji, zapoznaj się z poniższymi przykładami kodu. Możesz pobrać certyfikat wymagany do komunikacji za pośrednictwem protokołu TLS/SSL z usługi https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem

$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "/var/www/html/DigiCertGlobalRootCA.crt.pem", NULL, NULL);
mysqli_real_connect($conn, 'mydemoserver.mysql.database.azure.com', 'myadmin', 'yourpassword', 'quickstartdb', 3306, MYSQLI_CLIENT_SSL);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

Łą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.

Kod używa klasy rozszerzenia MySQL Improved (mysqli) uwzględnionej w języku PHP. Kod wywołuje metody mysqli_init i mysqli_real_connect w celu połączenia z systemem MySQL. Następnie wywołuje on metodę mysqli_query w celu uruchomienia zapytania. W kolejnym kroku kod wywołuje metodę mysqli_close w celu zamknięcia połączenia.

Zastąp parametry hosta, nazwy użytkownika, hasła i nazwy bazy danych własnymi wartościami.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

// Run the create table query
if (mysqli_query($conn, '
CREATE TABLE Products (
`Id` INT NOT NULL AUTO_INCREMENT ,
`ProductName` VARCHAR(200) NOT NULL ,
`Color` VARCHAR(50) NOT NULL ,
`Price` DOUBLE NOT NULL ,
PRIMARY KEY (`Id`)
);
')) {
printf("Table created\n");
}

//Close the connection
mysqli_close($conn);
?>

Wstawianie danych

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

Kod używa klasy rozszerzenia MySQL Improved (mysqli) uwzględnionej w języku PHP. Kod używa metody mysqli_prepare w celu utworzenia przygotowanej instrukcji insert, a następnie tworzy powiązania parametrów dla każdej wstawionej wartości kolumny za pomocą metody mysqli_stmt_bind_param. Kod uruchamia instrukcję, używając metody mysqli_stmt_execute, a następnie zamyka instrukcję przy użyciu metody mysqli_stmt_close.

Zastąp parametry hosta, nazwy użytkownika, hasła i nazwy bazy danych własnymi wartościami.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Create an Insert prepared statement and run it
$product_name = 'BrandNewProduct';
$product_color = 'Blue';
$product_price = 15.5;
if ($stmt = mysqli_prepare($conn, "INSERT INTO Products (ProductName, Color, Price) VALUES (?, ?, ?)")) {
mysqli_stmt_bind_param($stmt, 'ssd', $product_name, $product_color, $product_price);
mysqli_stmt_execute($stmt);
printf("Insert: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
mysqli_stmt_close($stmt);
}

// Close the connection
mysqli_close($conn);
?>

Odczyt danych

Użyj poniższego kodu, aby nawiązać połączenie i odczytać dane za pomocą instrukcji SELECT języka SQL. Kod używa klasy rozszerzenia MySQL Improved (mysqli) uwzględnionej w języku PHP. Kod używa metody mysqli_query w celu wykonania zapytania SQL oraz metody mysqli_fetch_assoc w celu pobrania wynikowych wierszy.

Zastąp parametry hosta, nazwy użytkownika, hasła i nazwy bazy danych własnymi wartościami.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Run the Select query
printf("Reading data from table: \n");
$res = mysqli_query($conn, 'SELECT * FROM Products');
while ($row = mysqli_fetch_assoc($res)) {
var_dump($row);
}

//Close the connection
mysqli_close($conn);
?>

Aktualizowanie danych

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

Kod używa klasy rozszerzenia MySQL Improved (mysqli) uwzględnionej w języku PHP. Kod używa metody mysqli_prepare w celu utworzenia przygotowanej instrukcji update, a następnie tworzy powiązania parametrów dla każdej zaktualizowanej wartości kolumny za pomocą metody mysqli_stmt_bind_param. Kod uruchamia instrukcję, używając metody mysqli_stmt_execute, a następnie zamyka instrukcję przy użyciu metody mysqli_stmt_close.

Zastąp parametry hosta, nazwy użytkownika, hasła i nazwy bazy danych własnymi wartościami.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Run the Update statement
$product_name = 'BrandNewProduct';
$new_product_price = 15.1;
if ($stmt = mysqli_prepare($conn, "UPDATE Products SET Price = ? WHERE ProductName = ?")) {
mysqli_stmt_bind_param($stmt, 'ds', $new_product_price, $product_name);
mysqli_stmt_execute($stmt);
printf("Update: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));

//Close the connection
mysqli_stmt_close($stmt);
}

mysqli_close($conn);
?>

Usuwanie danych

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

Kod używa klasy rozszerzenia MySQL Improved (mysqli) uwzględnionej w języku PHP. Kod używa metody mysqli_prepare w celu utworzenia przygotowanej instrukcji delete, a następnie tworzy powiązania parametrów dla klauzuli where w instrukcji przy użyciu metody mysqli_stmt_bind_param. Kod uruchamia instrukcję, używając metody mysqli_stmt_execute, a następnie zamyka instrukcję przy użyciu metody mysqli_stmt_close.

Zastąp parametry hosta, nazwy użytkownika, hasła i nazwy bazy danych własnymi wartościami.

<?php
$host = 'mydemoserver.mysql.database.azure.com';
$username = 'myadmin';
$password = 'your_password';
$db_name = 'your_database';

//Establishes the connection
$conn = mysqli_init();
mysqli_real_connect($conn, $host, $username, $password, $db_name, 3306);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}

//Run the Delete statement
$product_name = 'BrandNewProduct';
if ($stmt = mysqli_prepare($conn, "DELETE FROM Products WHERE ProductName = ?")) {
mysqli_stmt_bind_param($stmt, 's', $product_name);
mysqli_stmt_execute($stmt);
printf("Delete: Affected %d rows\n", mysqli_stmt_affected_rows($stmt));
mysqli_stmt_close($stmt);
}

//Close the connection
mysqli_close($conn);
?>

Następne kroki