Použití PHP s Azure Database for MySQL flexibilním serverem
platí pro:
Azure Database for MySQL – flexibilní Server
Tento rychlý start ukazuje, jak se připojit k flexibilnímu Azure Database for MySQL serveru 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 s flexibilním serverem Azure Database for MySQL novinka.
Požadavky
Tento rychlý start jako výchozí bod využívá prostředky vytvořené v některém z těchto průvodců:
- Vytvoření flexibilního Azure Database for MySQL serveru pomocí Azure Portal
- Vytvoření flexibilního Azure Database for MySQL pomocí Azure CLI
Příprava klientské pracovní stanice
Pokud jste vytvořili flexibilní server s privátním přístupem (integrace virtuální sítě), budete se muset připojit k serveru 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. Přečtěte si článek Vytvoření a správa Azure Database for MySQL s flexibilním serverem pomocí Azure CLI.
Pokud jste vytvořili flexibilní server s veřejným přístupem (povolené IP adresy), můžete přidat místní IP adresu do seznamu pravidel brány firewall na vašem serveru. Informace najdete v tématu Vytvoření a správa Azure Database for MySQL brány firewall flexibilního serveru pomocí Azure CLI.
Instalace PHP
Nainstalujte PHP na vlastní server nebo vytvořte webovou aplikaci Azure, která zahrnuje PHP. Informace o vytváření pravidel brány firewall najdete v tématu Vytváření a správa pravidel brány firewall.
macOS
- Stáhněte verzi PHP 7.1.4.
- Nainstalujte PHP a další konfiguraci najdete v příručce k PHP.
Linux (Ubuntu)
- Stáhněte verzi PHP 7.1.4 non-thread safe (x64).
- Nainstalujte PHP a další konfiguraci najdete v příručce k PHP.
Windows
- Stáhněte verzi PHP 7.1.4 non-thread safe (x64).
- Nainstalujte PHP a další konfiguraci najdete v příručce k PHP.
Získání informací o připojení
Získejte informace o připojení potřebné pro připojení k Azure Database for MySQL serveru. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.
- Přihlaste se k webu Azure Portal.
- V nabídce vlevo v Azure Portal vyberte Všechny prostředky a pak vyhledejte server, který jste vytvořili (například mydemoserver).
- Vyberte název serveru.
- 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í TLS/SSL v PHP
Pokud chcete z vaší aplikace navázat šifrované připojení k flexibilnímu serveru přes protokol TLS/SSL, přečtě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
$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());
}
Připojení a vytvoření tabulky
Pomocí následujícího kódu se připojte a vytvořte tabulku s využitím příkazu CREATE TABLE jazyka 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í.
Parametry host (hostitel), username (uživatelské jméno), password (heslo) a db_name (název databáze) nahraďte vlastními hodnotami.
<?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);
?>
Vložení dat
Pomocí následujícího kódu se připojte a vložte data s využitím příkazu INSERT 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 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.
Parametry host (hostitel), username (uživatelské jméno), password (heslo) a db_name (název databáze) nahraďte vlastními hodnotami.
<?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());
}
//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ů.
Parametry host (hostitel), username (uživatelské jméno), password (heslo) a db_name (název databáze) nahraďte vlastními hodnotami.
<?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);
?>
Aktualizace dat
Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE 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 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.
Parametry host (hostitel), username (uživatelské jméno), password (heslo) a db_name (název databáze) nahraďte vlastními hodnotami.
<?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);
?>
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.
Parametry host (hostitel), username (uživatelské jméno), password (heslo) a db_name (název databáze) nahraďte vlastními hodnotami.
<?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);
?>
Další kroky
- Šifrované připojení pomocí protokolu TLS 1.2 (Transport Layer Security) na Azure Database for MySQL – flexibilní server.
- Další informace o sítích najdete na Azure Database for MySQL serveru.
- Vytvořte a spravujte Azure Database for MySQL brány firewall flexibilního serveru pomocí Azure Portal.
- Vytvořte a spravujte Azure Database for MySQL flexibilního serveru pomocí Azure Portal.