【问题标题】:PHP mssql_connect() to Azure DatabasePHP mssql_connect() 到 Azure 数据库
【发布时间】:2013-10-08 13:55:11
【问题描述】:

我尝试设置与我的站点和 mssql 数据库的连接。我可以连接到数据库,但我无法执行 SQL 查询。我的代码是

$connection = mssql_connect('jass8l1.database.windows.net', 'username', 'password');
        if (!$connection){
            print_r(mssql_get_last_message());
        }else{

            $res= mssql_query('SELECT * FROM [my_database].[dbo].[table]', $connection);
            print_r(mssql_get_last_message());
            $row = mssql_fetch_array($res);

            echo $row[0];

        }

此代码显示错误

Reference to database and/or server name in 'my_database.dbo.table' is not supported in this version of SQL Server.

但是当我在线执行这个查询时,链接MANAGE URL,这个错误并没有发生。 我怎么解决这个问题?也许我需要一些额外的 PHP 驱动程序?

【问题讨论】:

标签: php sql sql-server azure


【解决方案1】:

错误消息不能比它更具有描述性!

您根本不能使用 4 字表示法(即 [DB_NAME].[SCHEMA].[TABLE_NAME].[COLUMN])。使用 SQL Azure,您应始终使用 3 字表示法(即 [SCHEMA].[表]。[列])。

SQL Azure 的更多内容是您必须在连接中显式设置数据库。您可以在 SQL Azure 中执行USE [DB_NAME]

在将 SQL Azure 与 PHP 一起使用时,我建议您通过 How to: Connect to Windows Azure SQL Database from PHP

您必须将连接更改为:

  $serverName = "tcp:ProvideServerName.database.windows.net,1433";
   $userName = 'ProvideUserName@ProvideServerName';
   $userPassword = 'ProvidePassword';
   $dbName = "TestDB";
   $table = "tablePHP";

   $connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword, "MultipleActiveResultSets"=>true);

   sqlsrv_configure('WarningsReturnAsErrors', 0);
   $conn = sqlsrv_connect( $serverName, $connectionInfo);
   if($conn === false)
   {
     FatalError("Failed to connect...");
   }

此外,强烈建议使用 Microsoft 的 MS SQL 驱动程序,而不是使用 PHP 提供的标准 MSSQL(在操作方法中也有提及)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2016-01-12
    • 2013-05-19
    相关资源
    最近更新 更多