PHP gebruiken met Azure Database for MySQL - Flexibele server

VAN TOEPASSING OP: Azure Database for MySQL - Flexibele server

In deze quickstart ziet u hoe u verbinding maakt met een flexibele Azure Database for MySQL-server met behulp van een PHP-toepassing . U ziet hier hoe u SQL-instructies gebruikt om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen. In dit artikel wordt ervan uitgegaan dat u bekend bent met de ontwikkeling met PHP en dat u geen ervaring hebt met het werken met flexibele Azure Database for MySQL-server.

Vereisten

In deze snelstartgids worden de resources die in een van deze handleidingen zijn gemaakt, als uitgangspunt gebruikt:

Uw clientwerkstation voorbereiden

  1. Als u een flexibele server hebt gemaakt met Persoonlijke toegang (VNet-integratie), moet u verbinding maken met uw server vanuit een resource binnen hetzelfde VNet als uw server. U kunt een virtuele machine maken en toevoegen aan het VNet dat is gemaakt met de flexibele server. Raadpleeg Een virtueel netwerk voor een flexibele Azure Database for MySQL-server maken en beheren met behulp van Azure CLI.

  2. Als u uw flexibele server met Openbare toegang (toegestane IP-adressen) hebt gemaakt, kunt u uw lokale IP-adres toevoegen aan de lijst met firewallregels op uw server. Raadpleeg Firewallregels voor flexibele Azure Database for MySQL-servers maken en beheren met behulp van de Azure CLI.

PHP installeren

Installeer PHP op uw eigen server of maak een Azure-web-app die PHP omvat. Raadpleeg firewallregels maken en beheren voor meer informatie over het maken van firewallregels.

  1. Download PHP 7.1.4.
  2. Installeer PHP en raadpleeg de PHP-handleiding voor verdere configuratie.

Verbindingsgegevens ophalen

Haal de verbindingsgegevens op die nodig zijn om verbinding te maken met het flexibele serverexemplaren van Azure Database for MySQL. U hebt de volledig gekwalificeerde servernaam en aanmeldingsreferenties nodig.

  1. Meld u aan bij de Azure-portal.
  2. Selecteer in het menu aan de linkerkant in de Azure-portal Alle resources en zoek naar de server die u hebt gemaakt (bijvoorbeeld mydemoserver).
  3. Selecteer de servernaam.
  4. Ga naar het venster Overzicht van de server en noteer de Servernaam en de Aanmeldingsnaam van de serverbeheerder. Als u uw wachtwoord vergeet, kunt u het wachtwoord in dit venster opnieuw instellen.

Verbinding maken met flexibele server met behulp van TLS/SSL in PHP

Zie de volgende codevoorbeelden als u vanuit uw toepassing een versleutelde verbinding via TLS/SSL tot stand wilt brengen. U kunt het voor communicatie via TLS/SSL benodigde certificaat downloaden van 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());
}

Verbinding maken en een tabel maken

Gebruik de volgende code om verbinding te maken en een tabel te maken met behulp van de SQL-instructie CREATE TABLE.

Voor de code wordt gebruikgemaakt van de klasse MySQL Improved extension (mysqli) die deel uitmaakt van PHP. Met de code worden de methoden mysqli_init en mysqli_real_connect aangeroepen om verbinding te maken met MySQL. Daarna wordt de methode mysqli_query aangeroepen op de query uit te voeren. Vervolgens wordt methode mysqli_close aangeroepen om de verbinding te sluiten.

Vervang de parameters Host, Gebruikersnaam, Wachtwoord en db_name door uw eigen waarden.

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

Gegevens invoegen

Gebruik de volgende code om verbinding te maken en de gegevens in te voegen met behulp van de SQL-instructie INSERT.

Voor de code wordt gebruikgemaakt van de klasse MySQL Improved extension (mysqli) die deel uitmaakt van PHP. Met de code wordt gebruikgemaakt van de methode mysqli_prepare om een invoeginstructie te maken. Daarna worden de parameters van elke ingevoegde kolomwaarde verbonden met de methode mysqli_stmt_bind_param. Met de code wordt de instructie uitgevoerd via de methode mysqli_stmt_execute. Daarna wordt de instructie gesloten via de methode mysqli_stmt_close.

Vervang de parameters Host, Gebruikersnaam, Wachtwoord en db_name door uw eigen waarden.

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

Gegevens lezen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met behulp van de SQL-instructie SELECT. Voor de code wordt gebruikgemaakt van de klasse MySQL Improved extension (mysqli) die deel uitmaakt van PHP. De code gebruikt de methode mysqli_query om de SQL-query uit te voeren en de methode mysqli_fetch_assoc om de resulterende rijen op te halen.

Vervang de parameters Host, Gebruikersnaam, Wachtwoord en db_name door uw eigen waarden.

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

Gegevens bijwerken

Gebruik de volgende code om verbinding te maken en de gegevens bij te werken met behulp van de SQL-instructie UPDATE.

Voor de code wordt gebruikgemaakt van de klasse MySQL Improved extension (mysqli) die deel uitmaakt van PHP. Met de code wordt gebruikgemaakt van de methode mysqli_prepare om een bijwerkinstructie te maken. Daarna worden de parameters van elke bijgewerkte kolomwaarde verbonden met de methode mysqli_stmt_bind_param. Met de code wordt de instructie uitgevoerd via de methode mysqli_stmt_execute. Daarna wordt de instructie gesloten via de methode mysqli_stmt_close.

Vervang de parameters Host, Gebruikersnaam, Wachtwoord en db_name door uw eigen waarden.

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

Gegevens verwijderen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met behulp van de SQL-instructie DELETE.

Voor de code wordt gebruikgemaakt van de klasse MySQL Improved extension (mysqli) die deel uitmaakt van PHP. Met de code wordt gebruikgemaakt van de methode mysqli_prepare om een verwijderinstructie te maken. Daarna worden de parameters verbonden voor het Where-component in de instructie. Hiervoor wordt de methode mysqli_stmt_bind_param gebruikt. Met de code wordt de instructie uitgevoerd via de methode mysqli_stmt_execute. Daarna wordt de instructie gesloten via de methode mysqli_stmt_close.

Vervang de parameters Host, Gebruikersnaam, Wachtwoord en db_name door uw eigen waarden.

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

Volgende stappen