Verwenden von PHP mit Azure Database for MySQL – Flexible Server
GILT FÜR: Azure Database for MySQL – Flexibler Server
In diesem Schnellstart wird gezeigt, wie Sie mithilfe einer PHP-Anwendung eine Verbindung mit Azure Database for MySQL – flexibler Server herstellen. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden. Bei diesem Artikel wird davon ausgegangen, dass Sie mit der PHP-Entwicklung vertraut sind und noch keine Erfahrung mit Azure Database for MySQL Flexible Server haben.
Voraussetzungen
In diesem Schnellstart werden die Ressourcen, die in den folgenden Anleitungen erstellt wurden, als Startpunkt verwendet:
- Erstellen einer Instanz von „Azure Database for MySQL – flexibler Server“ mit dem Azure-Portal
- Erstellen einer Instanz von „Azure Database for MySQL – flexibler Server“ mit der Azure CLI
Vorbereiten der Clientarbeitsstation
Wenn Sie Ihren flexiblen Server mit privatem Zugriff (Virtual Network Integration) erstellt haben, müssen Sie von einer 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. Siehe Erstellen und Verwalten eines virtuellen Netzwerks von Azure Database for MySQL flexible Server mit Azure CLI.
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. Siehe Erstellen und Verwalten von Azure Database for MySQL flexible Server-Firewall-Regeln mit der Azure CLI.
Installieren von PHP
Installieren Sie PHP auf Ihrem eigenen Server, oder erstellen Sie eine Azure-Web-App, die PHP enthält. Unter Erstellen und Verwalten von Firewallregeln erfahren Sie, wie Sie Firewallregeln erstellen.
- Laden Sie die PHP-Version 7.1.4 herunter.
- 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 Azure Database for MySQL Flexible Server-Instanz erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie im Azure-Portal im linken Menü Alle Ressourcen aus, und suchen Sie dann nach dem Server, den Sie erstellt haben (z.B. mydemoserver).
- Wählen Sie den Servernamen aus.
- 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.
Herstellen einer Verbindung mit einer Flexible 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 unter https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem herunterladen, das für die Kommunikation über TLS/SSL erforderlich ist.
$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());
}
Herstellen einer Verbindung und Erstellen einer Tabelle
Verwenden Sie den folgenden Code, um mit der SQL-Anweisung des Typs CREATE TABLE eine Verbindung herzustellen und eine Tabelle zu erstellen.
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.
Ersetzen Sie die Parameter „host“, „username“, „password“ und „db_name“ durch Ihre eigenen Werte.
<?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);
?>
Einfügen von Daten
Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und mit einer SQL-Anweisung des Typs INSERT Daten 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.
Ersetzen Sie die Parameter „host“, „username“, „password“ und „db_name“ durch Ihre eigenen Werte.
<?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)) {f
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 des Typs 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.
Ersetzen Sie die Parameter „host“, „username“, „password“ und „db_name“ durch Ihre eigenen Werte.
<?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);
?>
Aktualisieren von Daten
Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs UPDATE 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.
Ersetzen Sie die Parameter „host“, „username“, „password“ und „db_name“ durch Ihre eigenen Werte.
<?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);
?>
Löschen von Daten
Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs 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.
Ersetzen Sie die Parameter „host“, „username“, „password“ und „db_name“ durch Ihre eigenen Werte.
<?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);
?>
Nächste Schritte
- Verschlüsselte Konnektivität mit Transport Layer Security (TLS 1.2) in Azure Database for MySQL Flexible Server.
- Erfahren Sie mehr über Netzwerke in Azure Database for MySQL Flexible Server.
- Erstellen und Verwalten von Firewallregeln für Azure Database for MySQL Flexible Server mit dem Azure-Portal.
- Erstellen und verwalten Sie mit dem Azure-Portal das virtuelle Netzwerk Azure Database for MySQL flexible Server.