Uso de PHP con el servidor flexible de Azure Database for MySQL

SE APLICA A: Azure Database for MySQL: Servidor flexible

En este inicio rápido se muestra cómo conectarse al servidor flexible de Azure Database for MySQL mediante una aplicación PHP . Se indica cómo usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos en la base de datos. En este artículo se da por supuesto que está familiarizado con el desarrollo mediante PHP y que no está familiarizado con el servidor flexible de Azure Database for MySQL.

Requisitos previos

En este tutorial rápido se usan como punto de partida los recursos creados en una de estas guías:

Preparación de la estación de trabajo de cliente

  1. Si creó el servidor flexible con la opción Acceso privado (integración con red la virtual) , deberá conectarse a su servidor desde un recurso de la misma red virtual que el servidor. Puede crear una máquina virtual y agregarla a la red virtual creada con el servidor flexible. Consulte Creación y administración de una red virtual de servidor flexible de Azure Database for MySQL mediante la CLI de Azure.

  2. Si ha creado el servidor flexible con acceso público (direcciones IP permitidas) , puede agregar la dirección IP local a la lista de reglas de firewall del servidor. Consulte Creación y administración de reglas de firewall de servidor flexibles de Azure Database for MySQL mediante la CLI de Azure.

Instalación de PHP

Instale PHP en su propio servidor o cree una aplicación web de Azure que lo incluya. Consulte Creación y administración de reglas de firewall para obtener información sobre cómo crear las reglas de firewall.

  1. Descargue la versión 7.1.4 de PHP.
  2. Instale PHP y consulte el manual de PHP para continuar con la configuración.

Obtención de información sobre la conexión

Obtenga la información de conexión necesaria para conectarse a la instancia de servidor flexible de Azure Database for MySQL. Necesitará el nombre completo del servidor y las credenciales de inicio de sesión.

  1. Inicie sesión en Azure Portal.
  2. En el menú izquierdo de Azure Portal, seleccione Todos los recursos y, luego, busque el servidor que ha creado, por ejemplo, mydemoserver.
  3. Seleccione el nombre del servidor.
  4. En el panel Información general del servidor, anote el nombre del servidor y el nombre de inicio de sesión del administrador del servidor. Si olvida la contraseña, puede restablecerla en este panel.

Conexión a un servidor flexible mediante TLS/SSL en PHP

Para establecer una conexión cifrada a su servidor flexible a través de TLS/SSL desde la aplicación, consulte los siguientes ejemplos de código: Puede descargar el certificado necesario para comunicarse a través de TLS/SSL desde 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());
}

Conexión y creación de una tabla

Use el código siguiente para crear una tabla y conectarla mediante la instrucción SQL CREATE TABLE.

El código usa la clase MySQL Improved extension (mysqli) incluida en PHP. El código llama a los métodos mysqli_init y mysqli_real_connect para conectarse a MySQL. A continuación, llama al método mysqli_query para ejecutar la consulta. A continuación, llama al método mysqli_close para cerrar la conexión.

Reemplace los parámetros de host, username, password y db_name con sus propios 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);
?>

Insertar datos

Use el código siguiente para conectarse e insertar datos mediante la instrucción SQL INSERT.

El código usa la clase MySQL Improved extension (mysqli) incluida en PHP. El código usa el método mysqli_prepare para crear una instrucción insert preparada y enlaza los parámetros para cada valor de columna insertado mediante el método mysqli_stmt_bind_param. El código ejecuta la instrucción mediante el método mysqli_stmt_execute y después la cierra mediante el método mysqli_stmt_close.

Reemplace los parámetros de host, username, password y db_name con sus propios 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);
?>

Lectura de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT. El código usa la clase MySQL Improved extension (mysqli) incluida en PHP. El código usa el método mysqli_query para realizar la consulta sql y el método mysqli_fetch_assoc para capturar las filas resultantes.

Reemplace los parámetros de host, username, password y db_name con sus propios 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);
?>

Actualización de datos

Use el código siguiente para conectarse y actualizar los datos mediante la instrucción SQL UPDATE.

El código usa la clase MySQL Improved extension (mysqli) incluida en PHP. El código usa el método mysqli_prepare para crear una instrucción update preparada y enlaza los parámetros para cada valor de columna actualizado mediante el método mysqli_stmt_bind_param. El código ejecuta la instrucción mediante el método mysqli_stmt_execute y después la cierra mediante el método mysqli_stmt_close.

Reemplace los parámetros de host, username, password y db_name con sus propios 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);
?>

Eliminación de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL DELETE.

El código usa la clase MySQL Improved extension (mysqli) incluida en PHP. El código usa el método mysqli_prepare para crear una instrucción delete preparada y enlaza los parámetros para la cláusula where de la instrucción mediante el método mysqli_stmt_bind_param. El código ejecuta la instrucción mediante el método mysqli_stmt_execute y después la cierra mediante el método mysqli_stmt_close.

Reemplace los parámetros de host, username, password y db_name con sus propios 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);
?>

Pasos siguientes