连接字符串错误,PHP,在 Azure 中部署 MySQL
Error in connection string, PHP with MySQL deployed in Azure
我在一个项目中工作,该项目包括在 Azure 中部署 PHP 网站并连接到 Azure MySQL。
我首先在 Azure MySQL 中创建和迁移数据。我还创建了 PHP 网站并部署了代码,但是当在 Web 应用程序的配置部分添加连接字符串时,出现错误:
value is a required property on all connection strings
连接字符串:
$con=mysqli_init(); [mysqli_ssl_set($con, NULL, NULL, {ca-cert filename}, NULL, NULL);] mysqli_real_connect($con, {your_host}, {username@servername}, {your_password}, {your_database}, {your_port});
我无法保存连接字符串,因为错误在连接字符串选项卡下方显示为红色。
因为我没有使用 PHP 和 MySQL 的经验,所以我用谷歌搜索了这个错误,但没有找到任何东西。
如果你想在 Azure web 应用程序中添加我的 sql 连接字符串,请参考以下步骤
获取连接字符串
在 Azure Web 应用程序中添加连接字符串
允许从 Azure 应用服务访问 MySQL
的 Azure 数据库
MySQL 的 Azure 数据库使用防火墙来保护您的数据,从而提供访问安全性。从 Azure 应用服务连接到 MySQL 服务器的 Azure 数据库时,请记住应用服务的出站 IP 本质上是动态的。选择“允许访问 Azure 服务”选项将允许应用服务连接到 MySQL 服务器。
通过kudu上传perm文件
连接 Azure MySQL 与 php
<?php
$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';
foreach ($_SERVER as $key => $value) {
if (strpos($key, "MYSQLCONNSTR_") !== 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);
}
$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "D:/home/site/wwwroot/Cert/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL) ;
mysqli_real_connect($conn, $connectstr_dbhost, $connectstr_dbusername, $connectstr_dbpassword, $connectstr_dbname, 3306, MYSQLI_CLIENT_SSL);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}
echo "Success: A proper connection to MySQL was made! The database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($conn) . PHP_EOL;
?>
我在一个项目中工作,该项目包括在 Azure 中部署 PHP 网站并连接到 Azure MySQL。
我首先在 Azure MySQL 中创建和迁移数据。我还创建了 PHP 网站并部署了代码,但是当在 Web 应用程序的配置部分添加连接字符串时,出现错误:
value is a required property on all connection strings
连接字符串:
$con=mysqli_init(); [mysqli_ssl_set($con, NULL, NULL, {ca-cert filename}, NULL, NULL);] mysqli_real_connect($con, {your_host}, {username@servername}, {your_password}, {your_database}, {your_port});
我无法保存连接字符串,因为错误在连接字符串选项卡下方显示为红色。
因为我没有使用 PHP 和 MySQL 的经验,所以我用谷歌搜索了这个错误,但没有找到任何东西。
如果你想在 Azure web 应用程序中添加我的 sql 连接字符串,请参考以下步骤
获取连接字符串
在 Azure Web 应用程序中添加连接字符串
允许从 Azure 应用服务访问 MySQL
的 Azure 数据库MySQL 的 Azure 数据库使用防火墙来保护您的数据,从而提供访问安全性。从 Azure 应用服务连接到 MySQL 服务器的 Azure 数据库时,请记住应用服务的出站 IP 本质上是动态的。选择“允许访问 Azure 服务”选项将允许应用服务连接到 MySQL 服务器。
通过kudu上传perm文件
连接 Azure MySQL 与 php
<?php
$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';
foreach ($_SERVER as $key => $value) {
if (strpos($key, "MYSQLCONNSTR_") !== 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);
}
$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "D:/home/site/wwwroot/Cert/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL) ;
mysqli_real_connect($conn, $connectstr_dbhost, $connectstr_dbusername, $connectstr_dbpassword, $connectstr_dbname, 3306, MYSQLI_CLIENT_SSL);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}
echo "Success: A proper connection to MySQL was made! The database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($conn) . PHP_EOL;
?>