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 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:
- Criar uma instância de servidor flexível do Banco de Dados do Azure para MySQL usando o portal do Azure
- Criar um Banco de Dados do Azure para instância de servidor flexível do MySQL usando a CLI do Azure
Preparando a estação de trabalho do cliente
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 à rede virtual 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.
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 seu 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.
- Transfira a versão 7.1.4 do PHP.
- 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.
- Inicie sessão no portal do Azure.
- No menu à esquerda no portal do Azure, selecione Todos os recursos e procure o servidor que você criou (como mydemoserver).
- Selecione o nome do servidor.
- 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)) {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);
?>
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
- Conectividade criptografada usando Transport Layer Security (TLS 1.2) no Banco de Dados do Azure para servidor flexível MySQL.
- Saiba mais sobre Rede no Banco de Dados do Azure para servidor flexível MySQL.
- Crie e gerencie regras flexíveis de firewall de servidor do Banco de Dados do Azure para MySQL usando o portal do Azure.
- Crie e gerencie o Banco de Dados do Azure para rede virtual de servidor flexível MySQL usando o portal do Azure.