簡體   English   中英

使用 Azure Web 應用程序連接到 Azure 數據庫

[英]Connect to Azure Database using Azure Web App

我正在嘗試使用以下代碼連接到我的 Azure sql 數據庫:

<?php
//Constants to connect with the database
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'pass');
define('DB_HOST', 'xyz-server.database.windows.net');
define('DB_NAME', 'xyz_db');
<?php

//Class DbConnect
class DbConnect
{
    //Variable to store database link
    private $con;

    //Class constructor
    function __construct()
    {

    }

    //This method will connect to the database
    function connect()
    {
        //Including the constants.php file to get the database constants
        include_once dirname(__FILE__) . '/Constants.php';

        //connecting to mysql database
        $this->con = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);

        //Checking if any error occured while connecting
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }

        //finally returning the connection link 
        return $this->con;
    }

}

我收到此錯誤

Type: ErrorException
Code: 2
Message: mysqli::__construct(): (HY000/9002): The connection string may not be right. Please visit portal for references.
File: /home/site/wwwroot/blingoo/include/DbConnect.php
Line: 22

我只是從 Azure 開始。 也許我錯過了一些東西。 如果您可以簡單地指出如何連接我的數據庫和 web 應用程序(我使用 php 文件連接到數據庫),那就太好了。

在我看來,您的代碼正在嘗試連接到 MySQL 而不是 MSSQL。

要連接到 MSSQL,請使用以下命令:

<?php
    $serverName = "your_server.database.windows.net"; // update me
    $connectionOptions = array(
        "Database" => "your_database", // update me
        "Uid" => "your_username", // update me
        "PWD" => "your_password" // update me
    );
    //Establishes the connection
    $conn = sqlsrv_connect($serverName, $connectionOptions);
    $tsql= "SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName
         FROM [SalesLT].[ProductCategory] pc
         JOIN [SalesLT].[Product] p
         ON pc.productcategoryid = p.productcategoryid";
    $getResults= sqlsrv_query($conn, $tsql);
    echo ("Reading data from table" . PHP_EOL);
    if ($getResults == FALSE)
        echo (sqlsrv_errors());
    while ($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) {
     echo ($row['CategoryName'] . " " . $row['ProductName'] . PHP_EOL);
    }
    sqlsrv_free_stmt($getResults);
?>

來源: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connect-query-php

由於您正在嘗試連接到Azure SQL您可以使用PDO_DBLIB驅動程序,如果您安裝了此擴展。 請參閱php -m

$config = [
    'dsn' => 'dblib:host=xyz-server.database.windows.net;dbname=xyz_db',
    'user' => 'username',
    'pass' => 'password',
];

$connection = new PDO($config['dsn'], $config['user'], $config['pass']);

$sth = $connection->prepare('Your query comes here;');
$sth->execute();
$rows = $sth->fetchAll(PDO::FETCH_CLASS);

foreach ($rows as $row) {
    // Do the processing here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM