Partager via


Utiliser PHP avec Azure Database pour MySQL – Serveur flexible

Ce guide de démarrage rapide montre comment se connecter au serveur flexible Azure Database pour MySQL à l’aide d’une application PHP . Il détaille l’utilisation d’instructions SQL pour interroger la base de données, la mettre à jour, y insérer des données ou en supprimer. Cet article suppose que vous connaissez le développement à l’aide de PHP et que vous débutez avec Azure Database pour MySQL Flexible Server.

Prérequis

Ce guide de démarrage rapide s’appuie sur les ressources créées dans l’un de ces guides :

Préparer votre station de travail cliente

  1. Si vous avez créé votre serveur flexible avec un accès privé (intégration de réseau virtuel), vous devez vous connecter à votre serveur à partir d’une ressource au sein du même réseau virtuel que votre serveur. Vous pouvez créer une machine virtuelle et l’ajouter au réseau virtuel créé avec votre serveur flexible. Reportez-vous à Créer et gérer des réseaux virtuels pour Azure Database pour MySQL – Serveur flexible en utilisant Azure CLI.

  2. Si vous avez créé votre serveur flexible avec l’option Accès public (adresses IP autorisées) , vous pouvez ajouter votre adresse IP locale à la liste des règles de pare-feu sur votre serveur. Reportez-vous à Gérer les règles de pare-feu pour Azure Database pour MySQL – Serveur flexible à l’aide de Azure CLI.

Installer PHP

Installez PHP sur votre serveur, ou créez une application web Azure incluant PHP. Pour plus d’informations, consultez créer et gérer des règles de pare-feu.

  1. Téléchargez PHP version 7.1.4.
  2. Installez PHP et consultez le manuel PHP pour poursuivre la configuration.

Obtenir des informations de connexion

Obtenez les informations requises pour vous connecter à l’instance de serveur flexible Azure Database pour MySQL. Vous devez disposer du nom du serveur complet et des informations d'identification.

  1. Connectez-vous au portail Azure.

  2. Dans le menu de gauche du portail Azure, sélectionnez Toutes les ressources, puis recherchez le serveur que vous avez créé (dans les exemples suivants, remplacez <server> par une valeur valide).

  3. Sélectionnez le nom du serveur.

  4. Dans le panneau Vue d’ensemble du serveur, notez le nom du serveur et le nom de connexion de l’administrateur du serveur. Si vous oubliez votre mot de passe, vous pouvez également le réinitialiser dans ce panneau.

Se connecter au serveur flexible en utilisant TLS/SSL en PHP

Pour établir une connexion chiffrée à votre serveur flexible par le biais du protocole TLS/SSL à partir de votre application, reportez-vous aux exemples de code suivants. Vous pouvez télécharger le certificat nécessaire pour communiquer via TLS/SSL à partir de https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem.

Remplacez les paramètres $host, $username, $password et $db_name par vos propres valeurs.

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

Se connecter et créer une table

Utilisez le code suivant pour vous connecter et créer une table à l’aide CREATE TABLE de l’instruction SQL.

Ce code utilise la classe d’extension MySQL améliorée (mysqli) incluse dans PHP. Il appelle les méthodes mysqli_init et mysqli_real_connect pour se connecter à MySQL. Ensuite, il appelle la méthode mysqli_query pour exécuter la requête. Enfin, il appelle la méthode mysqli_close pour fermer la connexion.

Vous pouvez également vous connecter à Azure Database pour MySQL à l’aide de l’interface orientée objet fournie par l’extension mysqli .

Remplacez les paramètres $host, $username, $password et $db_name par vos propres valeurs.

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

Insertion des données

Utilisez le code suivant pour connecter et insérer des données à l’aide d’une INSERT instruction SQL.

Ce code utilise la classe d’extension MySQL améliorée (mysqli) incluse dans PHP. Le code utilise la méthode mysqli_prepare pour créer une instruction Insert préparée, puis lie les paramètres de chaque valeur de colonne insérée à l’aide de la méthode mysqli_stmt_bind_param. Il exécute l’instruction à l’aide de la méthode mysqli_stmt_execute, puis ferme l’instruction à l’aide de la méthode mysqli_stmt_close.

Vous pouvez également vous connecter à Azure Database pour MySQL à l’aide de l’interface orientée objet fournie par l’extension mysqli .

Remplacez les paramètres $host, $username, $password et $db_name par vos propres valeurs.

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

Lire les données

Utilisez le code suivant pour vous connecter et lire les données à l’aide d’une instruction SQL SELECT. Ce code utilise la classe d’extension MySQL améliorée (mysqli) incluse dans PHP. Le code utilise la méthode mysqli_query pour exécuter la requête sql, et la méthode mysqli_fetch_assoc pour extraire les lignes ainsi créées.

Vous pouvez également vous connecter à Azure Database pour MySQL à l’aide de l’interface orientée objet fournie par l’extension mysqli .

Remplacez les paramètres $host, $username, $password et $db_name par vos propres valeurs.

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

Mettre à jour des données

Utilisez le code suivant pour connecter et mettre à jour les données à l’aide d’une UPDATE instruction SQL.

Ce code utilise la classe d’extension MySQL améliorée (mysqli) incluse dans PHP. Le code utilise la méthode mysqli_prepare pour créer une instruction Update préparée, puis lie les paramètres de chaque valeur de colonne mise à jour à l’aide de la méthode mysqli_stmt_bind_param. Il exécute l’instruction à l’aide de la méthode mysqli_stmt_execute, puis ferme l’instruction à l’aide de la méthode mysqli_stmt_close.

Vous pouvez également vous connecter à Azure Database pour MySQL à l’aide de l’interface orientée objet fournie par l’extension mysqli .

Remplacez les paramètres $host, $username, $password et $db_name par vos propres valeurs.

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

?>

Suppression de données

Utilisez le code suivant pour vous connecter et lire les données à l’aide d’une instruction SQL DELETE.

Ce code utilise la classe d’extension MySQL améliorée (mysqli) incluse dans PHP. Le code utilise la méthode mysqli_prepare pour créer une instruction Delete préparée, puis lie les paramètres de la clause Where à l’aide de la méthode mysqli_stmt_bind_param. Il exécute l’instruction à l’aide de la méthode mysqli_stmt_execute, puis ferme l’instruction à l’aide de la méthode mysqli_stmt_close.

Vous pouvez également vous connecter à Azure Database pour MySQL à l’aide de l’interface orientée objet fournie par l’extension mysqli .

Remplacez les paramètres $host, $username, $password et $db_name par vos propres valeurs.

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