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. Este artigo pressupõe que você esteja familiarizado com o desenvolvimento usando PHP e que seja novo no trabalho com o Azure Database for MySQL Flexible Server.

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), precisará se conectar ao servidor a partir de um recurso na mesma rede virtual que o 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. Para obter mais informações, consulte criar e gerenciar 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 (nos exemplos a seguir, substitua <server> por um valor válido).

  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. Você pode baixar o certificado necessário para se comunicar por TLS/SSL de https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem.

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

<?php
$conn = mysqli_init();
mysqli_ssl_set(
    $conn,
    null,
    null,
    "/var/www/html/DigiCertGlobalRootCA.crt.pem",
    null,
    null
);
mysqli_real_connect(
    $conn,
    "<server>.mysql.database.azure.com",
    "<username>",
    "<password>",
    "<database>",
    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 CREATE TABLE a instrução SQL.

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.

Você também pode se conectar ao Banco de Dados do Azure para MySQL usando a interface orientada a objeto fornecida pela extensão mysqli .

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

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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 conectar e inserir dados usando uma instrução INSERT SQL.

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.

Você também pode se conectar ao Banco de Dados do Azure para MySQL usando a interface orientada a objeto fornecida pela extensão mysqli .

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

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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

Use o código a seguir para conectar-se e carregar 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.

Você também pode se conectar ao Banco de Dados do Azure para MySQL usando a interface orientada a objeto fornecida pela extensão mysqli .

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

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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 e atualizar os dados usando uma instrução UPDATE SQL.

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.

Você também pode se conectar ao Banco de Dados do Azure para MySQL usando a interface orientada a objeto fornecida pela extensão mysqli .

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

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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 carregar 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.

Você também pode se conectar ao Banco de Dados do Azure para MySQL usando a interface orientada a objeto fornecida pela extensão mysqli .

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

<?php
$host = "<server>.mysql.database.azure.com";
$username = "<username>";
$password = "<password>";
$db_name = "<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);
?>