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:
- Een exemplaar van een flexibele Azure Database for MySQL-server maken met behulp van Azure Portal
- Een exemplaar van een flexibele Azure Database for MySQL-server maken met behulp van Azure CLI
Uw clientwerkstation voorbereiden
Als u uw flexibele server hebt gemaakt met privétoegang (integratie van virtueel netwerk), moet u verbinding maken met uw server vanuit een resource binnen hetzelfde virtuele netwerk als uw server. U kunt een virtuele machine maken en toevoegen aan het virtuele netwerk dat is gemaakt met uw flexibele server. Raadpleeg Een virtueel netwerk voor een flexibele Azure Database for MySQL-server maken en beheren met behulp van Azure CLI.
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.
- Download PHP 7.1.4.
- 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.
- Meld u aan bij het Azure-portaal.
- Selecteer in het menu aan de linkerkant in de Azure-portal Alle resources en zoek naar de server die u hebt gemaakt (bijvoorbeeld mydemoserver).
- Selecteer de servernaam.
- 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
Raadpleeg de volgende codevoorbeelden om een versleutelde verbinding tot stand te brengen met uw flexibele server via TLS/SSL vanuit uw toepassing. 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)) {f
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
- Versleutelde connectiviteit met TLS 1.2 (Transport Layer Security) in Azure Database for MySQL Flexibele server.
- Meer informatie over netwerken in Azure Database for MySQL flexibele server.
- Firewallregels voor flexibele Azure Database for MySQL-servers maken en beheren met behulp van Azure Portal.
- Azure Database for MySQL Flexible Server Virtual Network maken en beheren met behulp van Azure Portal.