Compartilhar via


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

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

Pré-requisitos

Este guia de início rápido usa os recursos criados em um destes guias como ponto de partida:

Preparar a estação de trabalho do cliente

  1. Se você criou seu servidor flexível com Acesso privado (integração de rede virtual), você precisará se conectar ao seu servidor a partir de um recurso dentro da mesma rede virtual que seu servidor. Crie uma máquina virtual e adicione-a à rede virtual criada com o servidor flexível. Consulte Criar e gerenciar redes virtuais para o Banco de Dados do Azure para MySQL - Servidor Flexível usando a CLI do Azure.

  2. Caso tenha criado um servidor flexível com acesso público (endereços IP permitidos) , será possível adicionar seu endereço IP local à lista de regras de firewall no servidor. Consulte Gerenciar regras de firewall do Banco de Dados do Azure para MySQL - Servidor Flexível usando a CLI do Azure.

Instalar o PHP

Instalar o PHP em seu próprio servidor ou crie um aplicativo Web do Azure que inclua o PHP. Consulte Criar e gerenciar regras de firewall para saber como criar regras de firewall.

  1. Baixar o PHP 7.1.4 versão.
  2. Instalar o PHP e consultar o manual do PHP para outras configurações.

Obter informações de conexão

Obtenha as informações de conexão necessárias para se conectar à instância do servidor flexível do Banco de Dados do Azure para MySQL. Será necessário obter um nome do servidor totalmente qualificado e as credenciais de entrada.

  1. Entre no portal do Azure.
  2. No menu à esquerda no portal do Azure, selecione Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
  3. Selecione o nome do servidor.
  4. No painel Visão Geral do servidor, anote o Nome do servidor e Nome de logon do administrador do servidor. Se você esquecer sua senha, também poderá redefini-la nesse painel.

Conectar-se ao servidor flexível usando o TLS/SSL no PHP

Para estabelecer uma conexão criptografada com seu servidor flexível via TLS/SSL a partir do seu aplicativo, consulte os exemplos de código a seguir. Será possível 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());
}

Conectar-se e criar uma tabela

Use o código a seguir para se conectar e criar uma tabela usando a instrução SQL CREATE TABLE.

O código usa a classe (mysqli) Extensão aprimorada MySQL classe (mysqli) incluída em PHP. Os métodos de chamadas de código mysqli_init e mysqli_real_connect para se conectar ao MySQL. Em seguida, ele chama o método mysqli_query para executar a consulta. Em seguida, ele chama o método mysqli_close para fechar a conexã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

Use o código a seguir para se conectar e inserir dados usando uma instrução SQL INSERT.

O código usa a classe (mysqli) Extensão aprimorada MySQL classe (mysqli) incluída em PHP. O código usa o método mysqli_prepare para criar um instrução insert preparada, associa parâmetros a cada valor de coluna inserido usando o método mysqli_stmt_bind_param. O código executa a instrução usando o método mysqli_stmt_execute e depois fecha a instrução usando o 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

Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL SELECT. O código usa a classe (mysqli) Extensão aprimorada MySQL classe (mysqli) incluída em PHP. O código usa o método mysqli_query para executar a consulta sql e o método mysqli_fetch_assoc para buscar as linhas 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

Use o código a seguir para conectar-se e atualizar os dados usando uma instrução SQL UPDATE.

O código usa a classe (mysqli) Extensão aprimorada MySQL classe (mysqli) incluída em PHP. O código usa o método mysqli_prepare para criar uma instrução update preparada e associa os parâmetros de cada valor de coluna atualizada usando o método mysqli_stmt_bind_param. O código executa a instrução usando o método mysqli_stmt_execute e depois fecha a instrução usando o 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);
?>

Excluir dados

Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL DELETE.

O código usa a classe (mysqli) Extensão aprimorada MySQL classe (mysqli) incluída em PHP. O código usa o método mysqli_prepare para criar uma instrução delete preparada e associa os parâmetros da cláusula where na instrução usando o método mysqli_stmt_bind_param. O código executa a instrução usando o método mysqli_stmt_execute e depois fecha a instrução usando o 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);
?>