Usare PHP con Database di Azure per MySQL - Server flessibile

SI APPLICA A: Database di Azure per MySQL - Server flessibile

Questa guida introduttiva illustra come connettersi a Database di Azure per MySQL server flessibile usando un'applicazione PHP. Spiega come usare le istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database. Questo articolo presuppone che si abbia familiarità con lo sviluppo con PHP e che non si abbia familiarità con Database di Azure per MySQL server flessibile.

Prerequisiti

Questa guida introduttiva usa le risorse create in una delle guide seguenti come punto di partenza:

Preparazione della workstation client

  1. Se il server flessibile è stato creato con l'opzione per l'accesso privato (integrazione rete virtuale), sarà necessario connettersi al server da una risorsa all'interno della stessa rete virtuale usata dal server. È possibile creare una macchina virtuale e aggiungerla alla rete virtuale creata con il server flessibile. Fare riferimento a Creare e gestire una rete virtuale server flessibile Database di Azure per MySQL tramite l'interfaccia della riga di comando di Azure.

  2. Se il server flessibile è stato creato con l'opzione Accesso pubblico (indirizzi IP consentiti), è possibile aggiungere il proprio indirizzo IP locale all'elenco di regole del firewall nel server. Fare riferimento a Creare e gestire Database di Azure per MySQL regole del firewall del server flessibili usando l'interfaccia della riga di comando di Azure.

Installare PHP

Installare PHP nel server o creare un'app Web di Azure che includa PHP. Per informazioni su come creare regole del firewall, vedere Creare e gestire regole del firewall.

  1. Scaricare PHP versione 7.1.4.
  2. Installare PHP e vedere il manuale di PHP per le altre opzioni di configurazione.

Ottenere informazioni di connessione

Ottenere le informazioni di connessione necessarie per connettersi all'istanza del server flessibile Database di Azure per MySQL. Sono necessari il nome del server completo e le credenziali di accesso.

  1. Accedere al portale di Azure.
  2. Dal menu a sinistra nel portale di Azure scegliere Tutte le risorse e quindi cercare il server creato, ad esempio mydemoserver.
  3. Selezionare il nome del server.
  4. Nel pannello Panoramica del server prendere nota dei valori riportati in Nome server e Nome di accesso dell'amministratore server. Se si dimentica la password, in questo pannello è anche possibile reimpostarla.

Connessione al server flessibile tramite TLS/SSL in PHP

Per stabilire una connessione crittografata al server flessibile tramite TLS/SSL dall'applicazione, fare riferimento agli esempi di codice seguenti. È possibile scaricare il certificato necessario per comunicare tramite TLS/SSL da 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());
}

Connettersi e creare una tabella

Usare il codice seguente per connettersi e creare una tabella usando l'istruzione SQL CREATE TABLE.

Il codice usa la classe di estensioni MySQL Improved (mysqli) inclusa in PHP. Il codice chiama i metodi mysqli_init e mysqli_real_connect per la connessione a MySQL. Chiama quindi il metodo mysqli_query per eseguire la query. Chiama infine il metodo mysqli_close per chiudere la connessione.

Sostituire i parametri host, username, password e db_name con i valori personalizzati.

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

Inserire i dati

Usare il codice seguente per connettersi e inserire i dati usando un'istruzione SQL INSERT.

Il codice usa la classe di estensioni MySQL Improved (mysqli) inclusa in PHP. Il codice usa il metodo mysqli_prepare per creare un'istruzione insert preparata, quindi associa i parametri per ogni valore di colonna inserito usando il metodo mysqli_stmt_bind_param. Il codice esegue l'istruzione usando il metodo mysqli_stmt_execute e successivamente chiude l'istruzione usando il metodo mysqli_stmt_close.

Sostituire i parametri host, username, password e db_name con i valori personalizzati.

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

Leggere i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT. Il codice usa la classe di estensioni MySQL Improved (mysqli) inclusa in PHP. Il codice usa il metodo mysqli_query per eseguire la query SQL e il metodo mysqli_fetch_assoc per recuperare le righe risultanti.

Sostituire i parametri host, username, password e db_name con i valori personalizzati.

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

Aggiornamento dei dati

Usare il codice seguente per connettersi e aggiornare i dati usando un'istruzione SQL UPDATE.

Il codice usa la classe di estensioni MySQL Improved (mysqli) inclusa in PHP. Il codice usa il metodo mysqli_prepare per creare un'istruzione update preparata, quindi associa i parametri per ogni valore di colonna aggiornato usando il metodo mysqli_stmt_bind_param. Il codice esegue l'istruzione usando il metodo mysqli_stmt_execute e successivamente chiude l'istruzione usando il metodo mysqli_stmt_close.

Sostituire i parametri host, username, password e db_name con i valori personalizzati.

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

Eliminare dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL DELETE.

Il codice usa la classe di estensioni MySQL Improved (mysqli) inclusa in PHP. Il codice usa il metodo mysqli_prepare per creare un'istruzione delete preparata, quindi associa i parametri per la clausola where nell'istruzione usando il metodo mysqli_stmt_bind_param. Il codice esegue l'istruzione usando il metodo mysqli_stmt_execute e successivamente chiude l'istruzione usando il metodo mysqli_stmt_close.

Sostituire i parametri host, username, password e db_name con i valori personalizzati.

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

Passaggi successivi