Usar PHP com o Banco de Dados do Azure para MySQL - Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Flexível

Este guia de início rápido demonstra como se conectar ao Banco de Dados do Azure para servidor flexível MySQL usando um aplicativo PHP . Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados. Este artigo pressupõe que você esteja familiarizado com o desenvolvimento usando PHP e que seja novo no trabalho com o Banco de Dados do Azure para o servidor flexível MySQL.

Pré-requisitos

Este guia de início rápido utiliza os recursos criados em qualquer um desTes guias como ponto de partida:

Preparando a estação de trabalho do cliente

  1. Se você criou seu servidor flexível com acesso privado (integração de rede virtual), precisará se conectar ao servidor a partir de um recurso dentro da mesma rede virtual que o servidor. Você pode criar uma máquina virtual e adicioná-la à VNet criada com seu servidor flexível. Consulte Criar e gerenciar um Banco de Dados do Azure para rede virtual de servidor flexível MySQL usando a CLI do Azure.

  2. Se criou o seu servidor flexível com acesso público (endereços IP permitidos), pode adicionar o seu endereço IP local à lista de regras de firewall no servidor. Consulte Criar e gerenciar o Banco de Dados do Azure para regras flexíveis de firewall de servidor MySQL usando a CLI do Azure.

Instalar PHP

Instale o PHP no seu próprio servidor ou crie uma aplicação Web do Azure que inclua o PHP. Consulte Criar e gerenciar regras de firewall para saber como criar regras de firewall.

  1. Transfira a versão 7.1.4 do PHP.
  2. Instale o PHP e consulte o manual do PHP para mais configurações.

Obter informações da ligação

Obtenha as informações de conexão necessárias para se conectar à instância de servidor flexível do Banco de Dados do Azure para MySQL. Você precisa do nome do servidor totalmente qualificado e das credenciais de login.

  1. Inicie sessão no portal do Azure.
  2. No menu à esquerda no portal do Azure, selecione Todos os recursos e procure o servidor que você criou (como mydemoserver).
  3. Selecione o nome do servidor.
  4. No painel Descrição geral do servidor, tome nota do Nome do servidor e do Nome de início de sessão de administrador do servidor. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel.

Conectando-se ao servidor flexível usando TLS/SSL em PHP

Para estabelecer uma conexão criptografada com seu servidor flexível por TLS/SSL a partir de seu aplicativo, consulte os exemplos de código a seguir. Você pode baixar o certificado necessário para se comunicar por TLS/SSL de 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());
}

Ligar-se e criar uma tabela

Utilize o seguinte código para se ligar e crie uma tabela com a instrução SQL CREATE TABLE.

O código utiliza a classe da extensão MySQL melhorada (mysqli) incluída em PHP. O código chama os métodos mysqli_init e mysqli_real_connect para se ligar ao MySQL. Em seguida, chama o método mysqli_query para executar a consulta. Em seguida, chama o método mysqli_close para fechar a ligação.

Substitua os parâmetros host, username, password e db_name pelos seus próprios valores.

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

Inserir dados

Utilize o código seguinte para se ligar e inserir dados com uma instrução SQL INSERT.

O código utiliza a classe da extensão MySQL melhorada (mysqli) incluída em PHP. O código utiliza o método mysqli_prepare para criar uma instrução de introdução preparada e, em seguida, une os parâmetros de cada valor introduzido na coluna através do método mysqli_stmt_bind_param. O código executa a instrução através do método mysqli_stmt_execute e, depois, fecha a instrução através do método mysqli_stmt_close.

Substitua os parâmetros host, username, password e db_name pelos seus próprios valores.

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

Ler dados

Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT. O código utiliza a classe da extensão MySQL melhorada (mysqli) incluída em PHP. O código utiliza o método mysqli_query para executar a consulta sql e o método mysqli_fetch_assoc para obter os registos daí resultantes.

Substitua os parâmetros host, username, password e db_name pelos seus próprios valores.

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

Atualizar dados

Utilize o código seguinte para se ligar e atualizar os dados com uma instrução SQL UPDATE.

O código utiliza a classe da extensão MySQL melhorada (mysqli) incluída em PHP. O código utiliza o método mysqli_prepare para criar uma instrução de atualização preparada e, em seguida, une os parâmetros de cada valor introduzido na coluna através do método mysqli_stmt_bind_param. O código executa a instrução através do método mysqli_stmt_execute e, depois, fecha a instrução através do método mysqli_stmt_close.

Substitua os parâmetros host, username, password e db_name pelos seus próprios valores.

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

Eliminar dados

Utilize o código seguinte para se ligar e ler os dados com a instrução SQL DELETE.

O código utiliza a classe da extensão MySQL melhorada (mysqli) incluída em PHP. O código utiliza o método mysqli_prepare para criar uma instrução de eliminação preparada e, em seguida, une os parâmetros da cláusula «onde» na instrução através do método mysqli_stmt_bind_param. O código executa a instrução através do método mysqli_stmt_execute e, depois, fecha a instrução através do método mysqli_stmt_close.

Substitua os parâmetros host, username, password e db_name pelos seus próprios valores.

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

Próximos passos