2013-10-08 55 views
0

我嘗試設置與我的網站和mssql數據庫的連接。我可以連接到數據庫,但我無法執行SQL查詢。我的代碼是PHP mssql_connect()到Azure數據庫

$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. 

但是當我在網上執行這個查詢,鏈接來管理網址,不會發生此錯誤。 我該如何解決這個問題?也許我需要一些額外的驅動程序是PHP?

+0

您是否嘗試過'SELECT * FROM table'沒有完全限定的表名? –

+0

是的,如果我嘗試'SELECT * FROM table',我得到 '無效的對象名'table'.' –

回答

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

你必須改變你的conn撓度爲類似:

$serverName = "tcp:ProvideServerName.database.windows.net,1433"; 
    $userName = '[email protected]'; 
    $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..."); 
    } 

另外,強烈建議使用微軟的MS SQL驅動程序,而不是提供MSSQL標準的PHP(也是在提到如何)。