Använda PHP med Azure Database for MySQL – flexibel server

GÄLLER FÖR: Azure Database for MySQL – flexibel server

Den här snabbstarten visar hur du ansluter till en flexibel Azure Database for MySQL-server med hjälp av ett PHP-program . Den visar hur du använder SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen. Den här artikeln förutsätter att du är bekant med utveckling med PHP och att du är nybörjare på att arbeta med Azure Database for MySQL – flexibel server.

Förutsättningar

I den här snabbstarten används de resurser som skapades i någon av följande guider som utgångspunkt:

Förbereda klientarbetsstationen

  1. Om du har skapat en flexibel server med privat åtkomst (VNet-integrering) måste du ansluta till servern från en resurs i samma virtuella nätverk som servern. Du kan skapa en virtuell dator och lägga till den i det virtuella nätverk som skapats med din flexibla server. Mer information finns i Skapa och hantera ett virtuellt Azure Database for MySQL-flexibelt servernätverk med Azure CLI.

  2. Om du har skapat en flexibel server med offentlig åtkomst (tillåtna IP-adresser) kan du lägga till din lokala IP-adress i listan över brandväggsregler på servern. Se Skapa och hantera Azure Database for MySQL–brandväggsregler för flexibel server med hjälp av Azure CLI.

Installera PHP

Installera PHP på din server, eller skapa en Azure-webbapp som innehåller PHP. Mer information om hur du skapar brandväggsregler finns i Skapa och hantera brandväggsregler.

  1. Hämta PHP 7.1.4.
  2. Installera PHP och se PHP-handboken för ytterligare konfiguration.

Hämta anslutningsinformation

Hämta den anslutningsinformation som behövs för att ansluta till den flexibla serverinstansen Azure Database for MySQL. Du behöver det fullständigt kvalificerade servernamnet och inloggningsuppgifterna.

  1. Logga in på Azure-portalen.
  2. På den vänstra menyn i Azure-portalen väljer du Alla resurser och söker sedan efter den server som du har skapat (till exempel mydemoserver).
  3. Välj servernamnet.
  4. På serverpanelen Översikt antecknar du Servernamn och Inloggningsnamn för serveradministratören. Om du glömmer lösenordet kan du även återställa det på den här panelen.

Anslut till flexibel server med TLS/SSL i PHP

Information om hur du upprättar en krypterad anslutning till den flexibla servern via TLS/SSL från ditt program finns i följande kodexempel. Du kan ladda ned certifikatet som behövs för att kommunicera via TLS/SSL från 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());
}

Ansluta och skapa en tabell

Använd följande kod för att ansluta och skapa en tabell med hjälp av SQL-instruktionen CREATE TABLE.

Koden använder klassen MySQL Improved extension (mysqli) som ingår i PHP. Metoderna mysqli_init och mysqli_real_connect anropas för att ansluta till MySQL. Sedan anropas metoden mysqli_query för att köra frågan. Sedan anropas metoden mysqli_close för att stänga anslutningen.

Ersätt parametrarna host, username, password och db_name med dina egna värden.

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

Infoga data

Använd följande kod för att ansluta och infoga data med en INSERT-SQL-instruktion.

Koden använder klassen MySQL Improved extension (mysqli) som ingår i PHP. I koden används metoden mysqli_prepare för att skapa en förberedd insert-instruktion och sedan binds parametrarna för varje infogat kolumnvärde med metoden mysqli_stmt_bind_param. Sedan körs instruktionen med metoden mysqli_stmt_execute och efteråt stängs instruktionen med metoden mysqli_stmt_close.

Ersätt parametrarna host, username, password och db_name med dina egna värden.

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

Läsa data

Använd följande kod för att ansluta och läsa data med en SELECT-SQL-instruktion. Koden använder klassen MySQL Improved extension (mysqli) som ingår i PHP. Metoden mysqli_query används för att utföra sql-frågan och metoden mysqli_fetch_assoc används för att hämta de resulterande raderna.

Ersätt parametrarna host, username, password och db_name med dina egna värden.

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

Uppdatera data

Använd följande kod för att ansluta och uppdatera data med en UPDATE-SQL-instruktion.

Koden använder klassen MySQL Improved extension (mysqli) som ingår i PHP. Metoden mysqli_prepare används för att skapa en förberedd update-instruktion och sedan binds parametrarna för varje uppdaterat kolumnvärde med metoden mysqli_stmt_bind_param. Sedan körs instruktionen med metoden mysqli_stmt_execute och efteråt stängs instruktionen med metoden mysqli_stmt_close.

Ersätt parametrarna host, username, password och db_name med dina egna värden.

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

Ta bort data

Använd följande kod för att ansluta och läsa data med SQL-instruktionen DELETE.

Koden använder klassen MySQL Improved extension (mysqli) som ingår i PHP. Metoden mysqli_prepare används för att skapa en förberedd delete-instruktion och sedan binds parametrarna för where-satsen med metoden mysqli_stmt_bind_param. Sedan körs instruktionen med metoden mysqli_stmt_execute och efteråt stängs instruktionen med metoden mysqli_stmt_close.

Ersätt parametrarna host, username, password och db_name med dina egna värden.

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

Nästa steg