0

我尝试设置与我的站点和 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 的?

4

1 回答 1

3

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

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

SQL Azure 的更多内容是您必须在连接中显式设置数据库。你不能USE [DB_NAME]在 SQL Azure 中做到这一点。

将 SQL Azure 与 PHP 一起使用时,我建议您阅读如何:从 PHP 连接到 Windows Azure SQL 数据库

您必须将连接更改为:

  $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(在操作方法中也有提及)。

于 2013-10-08T14:56:01.990 回答