2017-07-07 27 views
0

我已經在我手上有一個項目。PHP查詢到sql server語法,我擁有的是ASP.NET連接字符串

在我們的新的小時註冊軟件中,我們想要查詢位於外部公司的數據庫。

外部公司已經打開了我們用於ASP.NET中另一個應用程序的連接。

我想從小時註冊PHP項目查詢到這個數據庫,但我不能使連接語法的工作。

我現在所擁有的只是ASP.NET連接字符串。 (該數據庫是SQL服務器)

ASP.NET連接字符串:

<connectionStrings> 
    <add name="NAV_ODS_2016ConnectionString" connectionString="Data Source=AX1234SQL;Initial Catalog=NAV_ODS_2016;User ID=test;Password=test" providerName="System.Data.SqlClient"/> 
    <add name="NAV_ODS_2016ConnectionString1" connectionString="Data Source=AX1234SQL;Initial Catalog=NAV_ODS_2016;User ID=test" providerName="System.Data.SqlClient"/> 
    <add name="NAV2016Test" connectionString="metadata=res://*/Nav.csdl|res://*/Nav.ssdl|res://*/Nav.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=AX1234SQL;initial catalog=NAV_ODS_2016;persist security info=True;user id=test;password=test;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient"/> 
</connectionStrings> 

任何想法如何做到這一點,我已經試過PHP官方用戶手冊。

+0

我希望外部公司具有良好的防火牆配置和/或VPN,並沒有打開端口1433到世界其他地方。 – VDWWD

+0

你會用什麼php數據庫API? PDO還是mysqli? – RamRaider

+0

@RamRaider mysqli是針對mysql數據庫的,他試圖連接到MS SqlServer。 – Kris

回答

0

鍵入該文本框這裏,所以......

$config = new DOMDocument(); 
$config->loadXML('path/to/web.config'); 

$connection = []; 

foreach($config->selectNodes('//connectionStrings/add[@providerName="System.Data.SqlClient"]') as $element) 
{ 
    $connectionString = $element->getAttribute('connectionString'); 
    $key = $element->getAttribute('name'); 
    $parts = explode(';', $connectionString); 
    $cnData = []; 
    foreach($parts as $part) 
    { 
     list($key, $value) = explode('=', $part); 
     $cnData[$key] = $value; 
    } 
    // add error checking, seriously... 
    $hostname = $cnData['Data Source']; 
    $username = $cnData['User Id']; 
    $database = $cnData['Initial Catalog']; 
    $password = $cnData['Password'] ?: null; 
    $port = $cnData['Port'] ?: 1433; 

    $connection[$name] = new PDO("odbc:Driver={SQL Server};Server={$hostname};Database={$database}; Uid={$username};Pwd={$password}"); 
} 

您應該結束了:

$connection['NAV_ODS_2016ConnectionString']$connection['NAV_ODS_2016ConnectionString1']

,您可以使用與數據庫進行通信。

+0

我不擅長這個,不知道要填什麼。 而這個路徑:$ config-> loadXML('path/to/web.config'); 我應該在這裏有一份文件嗎? 你能否給我一個你如何使用這個和在查詢中的例子? –

+0

這些connectionStrings是在web.config形式,所以我假設你可能有整個ASP.NET web.config文件,或能夠保存與連接字符串的地方片段。那將是你需要的路徑。一旦你有這樣的啓動和運行,你可以按照任何PDO教程來執行查詢和其他語句 – Kris