PHP-файл не подключается к базе данных Azure (mySQL-in-app службы приложений) - PullRequest
0 голосов
/ 10 апреля 2019

Я использую «mysql-in-app» службы приложений в Azure. Я хочу добавлять, удалять, редактировать и просматривать данные, используя страницу обслуживания.Я написал PHP-код для этого.Я не могу подключиться к базе данных mysql.

Я пробовал это локально для локальной базы данных, используя ->

$conn = mysqli_connect('127.0.0.1','root','','samdb');

все работает нормально.

Но я пытаюсь подключиться к Azure DB, используя это->

$conn = mysqli_connect('127.0.0.1:50721','azure','6#vWHD_$','localdb'); 

здесь не работает.,

Ответы [ 3 ]

0 голосов
/ 11 апреля 2019

Вот пример кода с использованием MySQL в приложении. Получить строку подключения к базе данных и подключиться к базе данных:

$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';

foreach ($_SERVER as $key => $value) {
    if (strpos($key, "MYSQLCONNSTR_localdb") !== 0) {
        continue;
    }

    $connectstr_dbhost = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value);
    $connectstr_dbname = preg_replace("/^.*Database=(.+?);.*$/", "\\1", $value);
    $connectstr_dbusername = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value);
    $connectstr_dbpassword = preg_replace("/^.*Password=(.+?)$/", "\\1", $value);
}

$link = mysqli_connect($connectstr_dbhost, $connectstr_dbusername, $connectstr_dbpassword,$connectstr_dbname);

Подробнее см. В этом руководстве: Объявление в приложении MySQL для веб-приложений (Windows)

Вы также можете получить эти строки подключения в Azure Protal: enter image description here

См. База данных Azure для MySQL: используйте PHP для подключения и запроса данных .

Итак, ваш код может быть таким, и вы можете повторить попытку:

$connectstr_dbhost = 'mydemoserver.mysql.database.azure.com';
$connectstr_dbname = 'myadmin@mydemoserver';
$connectstr_dbusername = 'your_password';
$connectstr_dbpassword = 'your_database';

$conn = mysqli_connect($connectstr_dbhost, $connectstr_dbusername, $connectstr_dbpassword,$connectstr_dbname);

Надеюсь, это поможет.

0 голосов
/ 11 апреля 2019

Попробуйте указать порт отдельно так:

$conn = mysqli_connect('127.0.0.1','azure','6#vWHD_$','localdb', '50721'); 
0 голосов
/ 11 апреля 2019

Сначала вам нужно получить информацию о соединении, необходимую для соединения с базой данных Azure для MySQL.Вам нужно полное имя сервера и учетные данные для входа.

enter image description here

Используйте следующий код для соединения и создания таблицы с помощью оператора SQL CREATE TABLE.

Код использует класс MySQL Improved extension (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@mydemoserver';
$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);
?>
...