Freigeben über


Verwenden von PHP mit Azure Database for MySQL – Flexible Server

In dieser Schnellstartanleitung wird veranschaulicht, wie Sie mithilfe einer PHP-Anwendung eine Verbindung mit Azure Database for MySQL Flexible Server herstellen. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden. In diesem Artikel wird davon ausgegangen, dass Sie mit der Entwicklung mit PHP vertraut sind und mit Azure Database für MySQL Flexible Server noch nicht vertraut sind.

Voraussetzungen

In diesem Schnellstart werden die Ressourcen, die in den folgenden Anleitungen erstellt wurden, als Startpunkt verwendet:

Vorbereiten Ihrer Clientarbeitsstation

  1. Wenn Sie Ihren flexiblen Server mit privatem Zugriff (Virtual Network Integration) erstellt haben, müssen Sie über eine Ressource innerhalb desselben virtuellen Netzwerks wie Ihr Server eine Verbindung mit Ihrem Server herstellen. Sie können einen virtuellen Computer erstellen und zum virtuellen Netzwerk hinzufügen, das mit Ihrer Flexible Server-Instanz erstellt wurde. Weitere Informationen finden Sie unter Erstellen und Verwalten von virtuellen Netzwerken für Azure Database for MySQL – Flexibler Server mithilfe der Azure CLI.

  2. Wenn Sie Ihre Flexible Server-Instanz mit Öffentlicher Zugriff (zulässige IP-Adressen) erstellt haben, können Sie die lokale IP-Adresse der Liste der Firewallregeln auf Ihrem Server hinzufügen. Weitere Informationen finden Sie unter Verwalten von Firewallregeln für Azure Database for MySQL – Flexibler Server mithilfe der Azure CLI.

Installieren von PHP

Installieren Sie PHP auf Ihrem eigenen Server, oder erstellen Sie eine Azure-Web-App, die PHP enthält. Weitere Informationen finden Sie unter Erstellen und Verwalten von Firewallregeln.

  1. Laden Sie die PHP-Version 7.1.4 herunter.
  2. Installieren Sie PHP, und informieren Sie sich im PHP-Handbuch über die weitere Konfiguration.

Abrufen von Verbindungsinformationen

Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Instance von Azure Database for MySQL – Flexibler Server erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie im linken Menü im Azure-Portal "Alle Ressourcen" aus, und suchen Sie dann nach dem server, den Sie erstellt haben (in den folgenden Beispielen ersetzen Sie <server> den Wert durch einen gültigen Wert).

  3. Wählen Sie den Servernamen aus.

  4. Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen.

Verbinden mit einer Flexibler Server-Instanz mithilfe von TLS/SSL in PHP

Sie können die folgenden Codebeispiele nutzen, um in Ihrer Anwendung über TLS/SSL eine verschlüsselte Verbindung mit Ihrer Flexible Server-Instanz einzurichten. Sie können das Zertifikat von https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem herunterladen, das für die Kommunikation über TLS/SSL erforderlich ist.

Ersetzen Sie die Parameter $host, $username, $password und $db_name durch Ihre eigenen Werte.

<?php
$conn = mysqli_init();
mysqli_ssl_set(
    $conn,
    null,
    null,
    "/var/www/html/DigiCertGlobalRootCA.crt.pem",
    null,
    null
);
mysqli_real_connect(
    $conn,
    "<server>.mysql.database.azure.com",
    "<username>",
    "<password>",
    "<database>",
    3306,
    MYSQLI_CLIENT_SSL
);
if (mysqli_connect_errno($conn)) {
    die("Failed to connect to MySQL: " . mysqli_connect_error());
}
?>

Herstellen einer Verbindung und Erstellen einer Tabelle

Verwenden Sie den folgenden Code, um eine Tabelle mithilfe der CREATE TABLE SQL-Anweisung zu erstellen und zu verbinden.

Im Code wird die Klasse mit der verbesserten MySQL-Erweiterung (mysqli) verwendet, die in PHP enthalten ist. Im Code werden die Methoden mysqli_init und mysqli_real_connect aufgerufen, um eine Verbindung mit MySQL herzustellen. Anschließend wird die mysqli_query-Methode aufgerufen, um die Abfrage auszuführen. Als Nächstes wird die mysqli_close-Methode aufgerufen, um die Verbindung zu schließen.

Sie können auch eine Verbindung mit azure Database for MySQL herstellen, indem Sie die objektorientierte Schnittstelle verwenden, die von der Mysqli-Erweiterung bereitgestellt wird.

Ersetzen Sie die Parameter $host, $username, $password und $db_name durch Ihre eigenen Werte.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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);
?>

Einfügen von Daten

Verwenden Sie den folgenden Code, um Daten mithilfe einer INSERT SQL-Anweisung zu verbinden und einzufügen.

Im Code wird die Klasse mit der verbesserten MySQL-Erweiterung (mysqli) verwendet, die in PHP enthalten ist. Im Code wird die mysqli_prepare-Methode verwendet, um eine vorbereitete INSERT-Anweisung zu erstellen, und anschließend werden die Parameter für jeden eingefügten Spaltenwert mit der mysqli_stmt_bind_param-Methode gebunden. Im Code wird die Anweisung mit der mysqli_stmt_execute-Methode ausgeführt, und anschließend wird die Anweisung mit der mysqli_stmt_close-Methode geschlossen.

Sie können auch eine Verbindung mit azure Database for MySQL herstellen, indem Sie die objektorientierte Schnittstelle verwenden, die von der Mysqli-Erweiterung bereitgestellt wird.

Ersetzen Sie die Parameter $host, $username, $password und $db_name durch Ihre eigenen Werte.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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);
?>

Lesen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ SELECT zu verbinden und zu lesen. Im Code wird die Klasse mit der verbesserten MySQL-Erweiterung (mysqli) verwendet, die in PHP enthalten ist. Im Code wird die mysqli_query-Methode zum Durchführen der SQL-Abfrage genutzt, und mit der mysqli_fetch_assoc-Methode werden die sich ergebenden Zeilen abgerufen.

Sie können auch eine Verbindung mit azure Database for MySQL herstellen, indem Sie die objektorientierte Schnittstelle verwenden, die von der Mysqli-Erweiterung bereitgestellt wird.

Ersetzen Sie die Parameter $host, $username, $password und $db_name durch Ihre eigenen Werte.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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);
?>

Aktualisieren von Daten

Verwenden Sie den folgenden Code, um die Daten mithilfe einer UPDATE SQL-Anweisung zu verbinden und zu aktualisieren.

Im Code wird die Klasse mit der verbesserten MySQL-Erweiterung (mysqli) verwendet, die in PHP enthalten ist. Im Code wird die mysqli_prepare-Methode verwendet, um eine vorbereitete UPDATE-Anweisung zu erstellen, und anschließend werden die Parameter für jeden aktualisierten Spaltenwert mit der mysqli_stmt_bind_param-Methode gebunden. Im Code wird die Anweisung mit der mysqli_stmt_execute-Methode ausgeführt, und anschließend wird die Anweisung mit der mysqli_stmt_close-Methode geschlossen.

Sie können auch eine Verbindung mit azure Database for MySQL herstellen, indem Sie die objektorientierte Schnittstelle verwenden, die von der Mysqli-Erweiterung bereitgestellt wird.

Ersetzen Sie die Parameter $host, $username, $password und $db_name durch Ihre eigenen Werte.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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);

?>

Löschen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung vom Typ DELETE zu verbinden und zu lesen.

Im Code wird die Klasse mit der verbesserten MySQL-Erweiterung (mysqli) verwendet, die in PHP enthalten ist. Im Code wird die mysqli_prepare-Methode verwendet, um eine vorbereitete DELETE-Anweisung zu erstellen, und anschließend werden die Parameter für die WHERE-Klausel in der Anweisung mit der mysqli_stmt_bind_param-Methode gebunden. Im Code wird die Anweisung mit der mysqli_stmt_execute-Methode ausgeführt, und anschließend wird die Anweisung mit der mysqli_stmt_close-Methode geschlossen.

Sie können auch eine Verbindung mit azure Database for MySQL herstellen, indem Sie die objektorientierte Schnittstelle verwenden, die von der Mysqli-Erweiterung bereitgestellt wird.

Ersetzen Sie die Parameter $host, $username, $password und $db_name durch Ihre eigenen Werte.

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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);
?>