Použití PHP s flexibilním serverem Azure Database for MySQL
PLATÍ PRO: Flexibilní server 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ů:
- Vytvoření instance flexibilního serveru Azure Database for MySQL pomocí webu Azure Portal
- Vytvoření instance flexibilního serveru 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 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. Projděte si informace o vytvoření a správě virtuální sítě flexibilního serveru Azure Database for MySQL pomocí Azure CLI.
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 vytváření a správě pravidel firewallu flexibilního serveru Azure Database for MySQL najdete v Azure CLI.
Nainstalovat PHP.
Nainstalujte PHP na vlastní server nebo vytvořte webovou aplikaci Azure, která zahrnuje PHP. Informace o vytváření a správě pravidel brány firewall najdete v tématu o vytváření a správě pravidel brány firewall.
- Stáhněte verzi PHP 7.1.4.
- 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é pro připojení k instanci flexibilního serveru Azure Database for MySQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.
- Přihlaste se k portálu Azure.
- V nabídce vlevo na webu Azure Portal vyberte Všechny prostředky a 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í 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
$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 flexibilním serveru Azure Database for MySQL
- Přečtěte si další informace o sítích na flexibilním serveru Azure Database for MySQL.
- Vytvoření a správa pravidel firewallu flexibilního serveru Azure Database for MySQL pomocí webu Azure Portal
- Vytvoření a správa virtuální sítě flexibilního serveru Azure Database for MySQL pomocí webu Azure Portal