PHP mssql_connect()到Azure数据库

时间:2013-10-08 13:55:11

标签: php sql sql-server azure

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

1 个答案:

答案 0 :(得分:3)

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

您根本无法使用4字符号(即[DB_NAME]。[SCHEMA]。[TABLE_NAME]。[COLUMN]。使用SQL Azure时,您应始终使用3字符号(即[SCHEMA]。[ TABLE]。[COLUMN])。

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(也在如何使用)。