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 puede conectarse a una instancia de servidor flexible de Azure Database for MySQL mediante una aplicación de 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:
- Crear una instancia de servidor flexible de Azure Database for MySQL mediante Azure Portal
- Crear una instancia de servidor flexible de Azure Database for MySQL mediante la CLI de Azure
Preparación de la estación de trabajo de cliente
Si creó el servidor flexible con Acceso privado (integración de red virtual), deberá conectarse al servidor desde un recurso dentro 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 la red virtual de Azure Database for MySQL con la opción servidor flexible mediante la CLI de Azure.
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 Azure Database for MySQL con la opción servidor flexible 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.
- Descargue la versión 7.1.4 de PHP.
- 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 del Servidor flexible de Azure Database for MySQL. Necesitará el nombre completo del servidor y las credenciales de inicio de sesión.
- Inicie sesión en Azure Portal.
- En el menú izquierdo de Azure Portal, seleccione Todos los recursos y, luego, busque el servidor que ha creado, por ejemplo, mydemoserver.
- Seleccione el nombre del servidor.
- 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 con el servidor flexible a través de TLS/SSL desde la aplicación, consulte los ejemplos de código siguientes. 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)) {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);
?>
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
- Conectividad cifrada con Seguridad de la capa de transporte (TLS 1.2) en el Servidor flexible de Azure Database for MySQL.
- Obtenga más información sobre la Entrada de red en el Servidor flexible de Azure Database for MySQL.
- Creación y administración de reglas de firewall para el Servidor flexible de Azure Database for MySQL mediante Azure Portal
- Creación y administración de una red virtual para un servidor flexible de Azure Database for MySQL mediante Azure Portal.