Použití PHP s flexibilním serverem Azure Database for MySQL

Tento rychlý start ukazuje, jak se připojit k flexibilnímu serveru Azure Database for MySQL pomocí aplikace PHP . Ukazuje, jak pomocí příkazů jazyka SQL dotazovat, vkládat, aktualizovat a odstraňovat data v databázi. Tento článek předpokládá, že máte zkušenosti s vývojem pomocí PHP a že začínáte pracovat s flexibilním serverem Azure Database for MySQL.

Požadavky

Tento rychlý start jako výchozí bod využívá prostředky vytvořené v některém z těchto průvodců:

Příprava klientské pracovní stanice

Nainstalovat PHP.

Nainstalujte PHP na vlastní server nebo vytvořte webovou aplikaci Azure, která zahrnuje PHP. Další informace najdete v tématu vytváření a správa pravidel brány firewall.

  1. Stáhněte verzi PHP 7.1.4.
  2. Nainstalujte PHP a další konfiguraci vyhledejte v příručce k PHP.

Získání informací o připojení

Získejte informace o připojení potřebné k připojení k instanci flexibilního serveru Azure Database for MySQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.

  1. Přihlaste se k portálu Azure.

  2. V nabídce vlevo na webu Azure Portal vyberte Všechny prostředky a pak vyhledejte server, který jste vytvořili (v následujících příkladech nahraďte <server> platnou hodnotou).

  3. Vyberte název serveru.

  4. Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.

Připojení k flexibilnímu serveru pomocí protokolu TLS/SSL v PHP

Pokud chcete vytvořit šifrované připojení k flexibilnímu serveru přes protokol TLS/SSL z vaší aplikace, projděte si následující ukázky kódu. Certifikát potřebný ke komunikaci přes protokol TLS/SSL si můžete stáhnout z https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem.

Nahraďte parametry $host, $username, $password a $db_name vlastními hodnotami.

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

Připojení a vytvoření tabulky

Pomocí následujícího kódu se připojte a vytvořte tabulku pomocí CREATE TABLE příkazu SQL.

Kód používá rozšíření MySQL Improved (třída mysqli) obsažené v PHP. Kód volá metody mysqli_init a mysqli_real_connect pro připojení k MySQL. Potom volá metodu mysqli_query pro spuštění dotazu. Potom volá metodu mysqli_close pro ukončení připojení.

K Azure Database for MySQL se také můžete připojit pomocí objektově orientovaného rozhraní poskytovaného rozšířením mysqli .

Nahraďte parametry $host, $username, $password a $db_name vlastními hodnotami.

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

Vložení dat

Pomocí následujícího kódu se připojte a vložte data pomocí INSERT příkazu SQL.

Kód používá vylepšenou třídu MySQL (mysqli) obsaženou v PHP. Kód využívá metodu mysqli_prepare k vytvoření připraveného příkazu Insert a potom vytvoří vazbu parametrů pro každou vloženou hodnotu sloupce pomocí metody mysqli_stmt_bind_param. Kód spustí tento příkaz pomocí metody mysqli_stmt_execute a potom tento příkaz zavře pomocí metody mysqli_stmt_close.

K Azure Database for MySQL se také můžete připojit pomocí objektově orientovaného rozhraní poskytovaného rozšířením mysqli .

Nahraďte parametry $host, $username, $password a $db_name vlastními hodnotami.

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

Čtení dat

Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL. Kód používá vylepšenou třídu MySQL (mysqli) obsaženou v PHP. Kód používá metodu mysqli_query k provedení příkazu jazyka SQL a metodu mysqli_fetch_assoc k načtení výsledných řádků.

K Azure Database for MySQL se také můžete připojit pomocí objektově orientovaného rozhraní poskytovaného rozšířením mysqli .

Nahraďte parametry $host, $username, $password a $db_name vlastními hodnotami.

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

Aktualizace dat

Pomocí následujícího kódu se připojte a aktualizujte data pomocí UPDATE příkazu SQL.

Kód používá vylepšenou třídu MySQL (mysqli) obsaženou v PHP. Kód využívá metodu mysqli_prepare k vytvoření připraveného příkazu Update a potom vytvoří vazbu parametrů pro každou aktualizovanou hodnotu sloupce pomocí metody mysqli_stmt_bind_param. Kód spustí tento příkaz pomocí metody mysqli_stmt_execute a potom tento příkaz zavře pomocí metody mysqli_stmt_close.

K Azure Database for MySQL se také můžete připojit pomocí objektově orientovaného rozhraní poskytovaného rozšířením mysqli .

Nahraďte parametry $host, $username, $password a $db_name vlastními hodnotami.

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

?>

Odstranění dat

Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu DELETE jazyka SQL.

Kód používá vylepšenou třídu MySQL (mysqli) obsaženou v PHP. Kód využívá metodu mysqli_prepare k vytvoření připraveného příkazu Delete a potom vytvoří vazbu parametrů pro klauzuli Where v tomto příkazu pomocí metody mysqli_stmt_bind_param. Kód spustí tento příkaz pomocí metody mysqli_stmt_execute a potom tento příkaz zavře pomocí metody mysqli_stmt_close.

K Azure Database for MySQL se také můžete připojit pomocí objektově orientovaného rozhraní poskytovaného rozšířením mysqli .

Nahraďte parametry $host, $username, $password a $db_name vlastními hodnotami.

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