连接字符串错误,在Azure中部署了PHP和MySQL

连接字符串错误,在Azure中部署了PHP和MySQL,php,mysql,azure,connection-string,Php,Mysql,Azure,Connection String,我在一个项目中工作,该项目包括在Azure中部署PHP网站并连接Azure MySQL 我首先在Azure MySQL中创建和迁移数据。我还创建了PHP网站并部署了代码,但当在web应用程序的配置部分添加连接字符串时,它给了我一个错误: 值是所有连接字符串上的必需属性 连接字符串: $con=mysqli_init(); [mysqli_ssl_set($con, NULL, NULL, {ca-cert filename}, NULL, NULL);] mysqli_real_connect(

我在一个项目中工作,该项目包括在Azure中部署PHP网站并连接Azure MySQL

我首先在Azure MySQL中创建和迁移数据。我还创建了PHP网站并部署了代码,但当在web应用程序的配置部分添加连接字符串时,它给了我一个错误:

值是所有连接字符串上的必需属性

连接字符串:

$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 app中添加我的sql连接字符串,请参考以下步骤

  • 获取连接字符串

  • 在Azure web app中添加连接字符串

  • 允许从Azure应用程序服务访问Azure MySQL数据库

    Azure Database for MySQL使用防火墙保护您的数据,提供访问安全性。从Azure应用程序服务连接到Azure Database for MySQL服务器时,请记住,应用程序服务的出站IP本质上是动态的。选择“允许访问Azure服务”选项将允许应用程序服务连接到MySQL服务器。

  • 通过kudu上传perm文件

  • 将Azure MySQL与php连接

  • 
    

    您没有传递密钥和证书路径。请您解释一下。您传递了大量的
    NULL
    作为参数,我认为它不会工作。我从MySQL数据库复制了这个连接字符串。我添加了服务器、数据库名、用户ID和密码。在PHP中没有
    null
    的连接字符串怎么可能呢?@JoePlatano是的,我已将连接合并到一个不在azure中的文件中并已修复。我已使用此连接字符串
    $con=mysqli_init();[mysqli_ssl_set($con,NULL,NULL,{ca cert filename},NULL,NULL);]mysqli_real_connect($con,{your_host}{username@servername},{你的密码},{你的数据库},{你的端口})。你已经使用了另一个,你能解释一下区别吗。你为Azure mysql()配置了SSL吗?如果您没有配置它,您可以使用我的代码。该应用程序已准备就绪,正在开发中,只需连接数据库。我只需要连接。如果您有使用php和MySQL的经验,请编写适合您的连接字符串。
    
    <?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;
    
    ?>