Использование PHP с База данных Azure для MySQL — гибкий сервер
В этом кратком руководстве показано, как подключиться к гибкому серверу База данных Azure для MySQL с помощью приложения PHP. Здесь также показано, как использовать инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных. В этой статье предполагается, что вы знакомы с разработкой с помощью PHP и что вы не знакомы с База данных Azure для MySQL гибким сервером.
Необходимые компоненты
В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими материалами:
- Краткое руководство. Создание экземпляра База данных Azure для MySQL с помощью портал Azure
- Краткое руководство. Создание экземпляра База данных Azure для MySQL — гибкий сервер с помощью Azure CLI
Подготовка клиентской рабочей станции
Если вы создали гибкий сервер с частным доступом (интеграция с виртуальной сетью), необходимо подключиться к серверу из ресурса в той же виртуальной сети, что и сервер. Например, можно создать виртуальную машину и добавить ее в виртуальную сеть, созданную для гибкого сервера. Сведения о создании виртуальных сетей и управлении ими для База данных Azure для MySQL — гибкий сервер с помощью Azure CLI.
Если вы создали гибкий сервер в режиме Открытый доступ (разрешенные IP-адреса), вы можете добавить локальный IP-адрес в список правил брандмауэра на этом сервере. См. инструкции по управлению правилами брандмауэра для База данных Azure для MySQL — гибкий сервер с помощью Azure CLI.
Установка PHP
Установите PHP на своем сервере или создайте веб-приложение Azure с PHP. Дополнительные сведения см. в статье о создании правил брандмауэра и управлении ими.
- Скачайте PHP версии 7.1.4.
- Установите PHP и выполните настройку согласно инструкциям в руководстве по PHP.
Получение сведений о подключении
Получите сведения о подключении, необходимые для подключения к База данных Azure для MySQL гибкому экземпляру сервера. Вам потребуется полное имя сервера и учетные данные для входа.
- Войдите на портал Azure.
- В меню слева на портале Azure выберите Все ресурсы и выполните поиск по имени созданного сервера (например, mydemoserver).
- Выберите имя сервера.
- Запишите имя сервера и имя для входа администратора сервера с панели сервера Обзор. Если вы забыли свой пароль, можно также сбросить пароль с помощью этой панели.
Подключение к гибкому серверу с помощью TLS/SSL в PHP
Чтобы установить зашифрованное подключение к гибкому серверу через TLS/SSL из приложения, ознакомьтесь со следующими примерами кода. Вы можете скачать сертификат, необходимый для обмена данными по протоколу TLS или SSL, из 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());
}
Подключение и создание таблицы
Используйте указанный ниже код с инструкцией SQL CREATE TABLE для подключения и создания таблицы.
В коде используется класс улучшенного расширения MySQL (mysqli), включенный в PHP. Код вызывает методы mysqli_init и mysqli_real_connect, чтобы подключиться к MySQL. Затем код вызывает метод mysqli_query для выполнения запроса и метод mysqli_close, чтобы разорвать подключение.
Замените значения параметров host, username, password и db_name своими значениями.
<?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);
?>
Вставка данных
Используйте указанный ниже код с инструкцией SQL INSERT для подключения и вставки данных.
В коде используется класс улучшенного расширения MySQL (mysqli), включенный в PHP. Метод mysqli_prepare используется для создания подготовленной инструкции INSERT, а затем с помощью метода mysqli_stmt_bind_param привязываются параметры для каждого вставленного значения столбца. Код выполняет инструкцию, используя метод mysqli_stmt_execute, и закрывает ее с помощью метода mysqli_stmt_close.
Замените значения параметров host, username, password и db_name своими значениями.
<?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);
?>
Чтение данных
Используйте указанный ниже код с инструкцией SQL SELECT для подключения и чтения данных. В коде используется класс улучшенного расширения MySQL (mysqli), включенный в PHP. В коде используется метод mysqli_query для выполнения SQL-запроса и метод mysqli_fetch_assoc для получения результирующих строк.
Замените значения параметров host, username, password и db_name своими значениями.
<?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);
?>
Обновление данных
Используйте указанный ниже код с инструкцией SQL UPDATE для подключения и обновления данных.
В коде используется класс улучшенного расширения MySQL (mysqli), включенный в PHP. Метод mysqli_prepare используется для создания подготовленной инструкции UPDATE, а затем с помощью метода mysqli_stmt_bind_param привязываются параметры для каждого обновленного значения столбца. Код выполняет инструкцию, используя метод mysqli_stmt_execute, и закрывает ее с помощью метода mysqli_stmt_close.
Замените значения параметров host, username, password и db_name своими значениями.
<?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);
?>
Удаление данных
Используйте следующий код с инструкцией SQL DELETE для подключения и чтения данных.
В коде используется класс улучшенного расширения MySQL (mysqli), включенный в PHP. Метод mysqli_prepare используется для создания подготовленной инструкции DELETE, а затем с помощью метода mysqli_stmt_bind_param привязываются параметры для предложения WHERE в инструкции. Код выполняет инструкцию, используя метод mysqli_stmt_execute, и закрывает ее с помощью метода mysqli_stmt_close.
Замените значения параметров host, username, password и db_name своими значениями.
<?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);
?>
Связанный контент
- Подключение к базе данных Azure для MySQL — гибкому серверу с зашифрованными подключениями
- Основные понятия подключения и сети для База данных Azure для MySQL — гибкий сервер
- Управление правилами брандмауэра для База данных Azure для MySQL — гибкий сервер с помощью портал Azure
- Создание виртуальных сетей для База данных Azure для MySQL — гибкий сервер с помощью портал Azure