Sdílet prostřednictvím


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

  1. Pokud jste vytvořili flexibilní server s privátním přístupem (integrace virtuální sítě), musíte se k serveru připojit z prostředku ve stejné virtuální síti jako váš server. Můžete vytvořit virtuální počítač a přidat ho do virtuální sítě vytvořené pomocí flexibilního serveru. Informace o vytváření a správě virtuálních sítí pro flexibilní server Azure Database for MySQL pomocí Azure CLI

  2. Pokud jste vytvořili flexibilní server s veřejným přístupem (povolené IP adresy), můžete místní IP adresu přidat do seznamu pravidel brány firewall na vašem serveru. Informace o správě pravidel brány firewall pro flexibilní server Azure Database for MySQL pomocí Azure CLI

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 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.

Tento kód využívá třídu rozšíření MySQL Improved (mysqli), která je zahrnutá 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.

Tento kód využívá třídu rozšíření MySQL Improved (mysqli), která je zahrnutá 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. Tento kód využívá třídu rozšíření MySQL Improved (mysqli), která je zahrnutá 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.

Tento kód využívá třídu rozšíření MySQL Improved (mysqli), která je zahrnutá 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.

Tento kód využívá třídu rozšíření MySQL Improved (mysqli), která je zahrnutá 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);
?>