Megosztás a következőn keresztül:


PHP használata az Azure Database for MySQL-hez – rugalmas kiszolgáló

Ez a gyors útmutató bemutatja, hogyan csatlakozhat az Azure Database for MySQL rugalmas kiszolgálóhoz PHP célalkalmazással. Bemutatjuk, hogy az SQL-utasítások használatával hogyan kérdezhetők le, illeszthetők be, frissíthetők és törölhetők az adatok az adatbázisban. Ez a cikk feltételezi, hogy ismeri a PHP-vel való fejlesztést, és hogy még nem használta a rugalmas Azure Database for MySQL-kiszolgálót.

Előfeltételek

Ebben a rövid útmutatóban a következő útmutatók valamelyikében létrehozott erőforrásokat használunk kiindulási pontként:

Az ügyfél-munkaállomás előkészítése

  1. Ha privát hozzáféréssel (virtuális hálózati integrációval) hozta létre a rugalmas kiszolgálót, a kiszolgálóval azonos virtuális hálózaton belüli erőforrásból kell csatlakoznia a kiszolgálóhoz. Létrehozhat egy virtuális gépet, és hozzáadhatja a rugalmas kiszolgálóval létrehozott virtuális hálózathoz. Tekintse meg az Azure Database for MySQL- rugalmas kiszolgáló virtuális hálózatainak létrehozását és kezelését az Azure CLI használatával.

  2. Ha nyilvános hozzáféréssel (engedélyezett IP-címekkel ) hozta létre a rugalmas kiszolgálót, hozzáadhatja a helyi IP-címet a kiszolgáló tűzfalszabályainak listájához. Tekintse meg az Azure Database for MySQL tűzfalszabályainak kezelése – Rugalmas kiszolgáló az Azure CLI használatával című témakört.

A PHP telepítése

Telepítse a PHP-t a kiszolgálójára, vagy hozzon létre egy PHP-t tartalmazó Azure-webalkalmazást. További információ: tűzfalszabályok létrehozása és kezelése.

  1. Töltse le a PHP 7.1.4-es verzióját.
  2. Telepítse a PHP-t, majd a további konfigurációs lehetőségekért tekintse meg a PHP kézikönyvét.

Kapcsolatadatok lekérése

Szerezze be a rugalmas Azure Database for MySQL-kiszolgálópéldányhoz való csatlakozáshoz szükséges kapcsolati adatokat. Szüksége van a teljes kiszolgálónévre, és be kell jelentkeznie a hitelesítő adatokkal.

  1. Jelentkezzen be az Azure Portalra.

  2. Az Azure Portal bal oldali menüjében válassza a Minden erőforrás lehetőséget, majd keresse meg a létrehozott kiszolgálót (az alábbi példákban cserélje le <server> érvényes értékre).

  3. Válassza ki a kiszolgálónevet.

  4. A kiszolgáló Áttekintés paneléről jegyezze fel a Kiszolgálónevet és a Kiszolgáló-rendszergazdai bejelentkezési nevet. Ha elfelejti a jelszavát, ezen a panelen új jelszót is tud kérni.

Csatlakozás rugalmas kiszolgálóhoz TLS/SSL használatával a PHP-ben

Ha titkosított kapcsolatot szeretne létesíteni a rugalmas kiszolgálóval TLS/SSL protokollon keresztül az alkalmazásból, tekintse meg az alábbi kódmintákat. A TLS/SSL https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pemprotokollon keresztüli kommunikációhoz szükséges tanúsítványt innen töltheti le.

Cserélje le a $host, $username, $password és $db_name paramétereket a saját értékeire.

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

Csatlakozás és tábla létrehozása

A következő kóddal csatlakozhat és létrehozhat egy táblát AZ SQL-utasítás használatával CREATE TABLE .

A kód a PHP beépített MySQL Improved extension (mysqli) osztályát használja. A kód meghívja a mysqli_init és mysqli_real_connect metódust a MySQL-hez történő csatlakozáshoz. Ezután a kód meghívja mysqli_query metódust a lekérdezés futtatásához. Végül pedig a mysqli_close meghívásával bontja a kapcsolatot.

Az Azure Database for MySQL-hez a mysqli bővítmény által biztosított objektumorientált felülettel is csatlakozhat.

Cserélje le a $host, $username, $password és $db_name paramétereket a saját értékeire.

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

Adat beszúrása

Az alábbi kód használatával sql utasítással INSERT csatlakozhat és szúrhat be adatokat.

A kód a PHP beépített MySQL Improved extension (mysqli) osztályát használja. A kód a mysqli_prepare metódus használatával létrehoz egy előkészített beillesztési parancsot, majd a mysqli_stmt_bind_param metódus használatával hozzáköti az egyes beillesztett oszlopokhoz a paramétereket. A kód a mysqli_stmt_execute metódus használatával futtatja az utasítást, majd a mysqli_stmt_close metódussal lezárja azt.

Az Azure Database for MySQL-hez a mysqli bővítmény által biztosított objektumorientált felülettel is csatlakozhat.

Cserélje le a $host, $username, $password és $db_name paramétereket a saját értékeire.

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

Adatok beolvasása

A következő kóddal csatlakozhat, és beolvashatja az adatokat a SELECT SQL-utasítással. A kód a PHP beépített MySQL Improved extension (mysqli) osztályát használja. A kód a mysqli_query metódus használatával végrehajtja az SQL-lekérdezést, és a mysqli_fetch_assoc metódussal beolvassa az eredményül kapott sorokat.

Az Azure Database for MySQL-hez a mysqli bővítmény által biztosított objektumorientált felülettel is csatlakozhat.

Cserélje le a $host, $username, $password és $db_name paramétereket a saját értékeire.

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

Adatok frissítése

Az alábbi kóddal sql utasítással UPDATE csatlakozhat és frissítheti az adatokat.

A kód a PHP beépített MySQL Improved extension (mysqli) osztályát használja. A kód a mysqli_prepare metódus használatával létrehoz egy előkészített módosítási parancsot, majd a mysqli_stmt_bind_param metódus használatával hozzáköti az egyes módosított oszlopokhoz a paramétereket. A kód a mysqli_stmt_execute metódus használatával futtatja az utasítást, majd a mysqli_stmt_close metódussal lezárja azt.

Az Azure Database for MySQL-hez a mysqli bővítmény által biztosított objektumorientált felülettel is csatlakozhat.

Cserélje le a $host, $username, $password és $db_name paramétereket a saját értékeire.

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

?>

Adatok törlése

A következő kóddal csatlakozhat, és beolvashatja az adatokat a DELETE SQL-utasítással.

A kód a PHP beépített MySQL Improved extension (mysqli) osztályát használja. A kód a mysqli_prepare metódus használatával létrehoz egy előkészített törlési parancsot, majd hozzáköti a paramétereket a parancs where záradékához a mysqli_stmt_bind_param metódus használatával. A kód a mysqli_stmt_execute metódus használatával futtatja az utasítást, majd a mysqli_stmt_close metódussal lezárja azt.

Az Azure Database for MySQL-hez a mysqli bővítmény által biztosított objektumorientált felülettel is csatlakozhat.

Cserélje le a $host, $username, $password és $db_name paramétereket a saját értékeire.

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