2012-11-03 32 views
4

我在使用PDO/PHP的不同服務器上與sql server 7建立連接時遇到問題。所有作品完美的贏得2003年32位/ apache/php5.2.5但我收到服務器時沒有找到服務是贏得2008R2 64位/ apache/php5.2.5。用戶/密碼正確,配置了防火牆。PDO_MSSQL和SQL Server 7

我檢查,PHP不使用1433端口,但嘗試連接445和139端口。

有什麼想法?

斯特凡

+0

你可以發佈你用來連接的代碼嗎? – ajtrichards

+0

嘗試{dbh = new PDO('mssql:host = x.x.x.x; dbname = yyy','username','andpassword'); var_dump($ dbh); $ dbh = null; (PDOException $ e){ print「Error !:」。 $ e-> getMessage()。 「
」; } –

+0

您可以使用Windows數據源連接連接到服務器嗎? – ajtrichards

回答

2

更新;

您可以使用PDO ODBC連接選項:PHP: PDO_ODBC DSN。我以前使用過此方法從Win 2003和2008連接到SQL Server

+0

當前代碼使用PDO。更改代碼將會很昂貴。 –

+0

好的 - $ cnx = new PDO(「odbc:Driver = {SQL Server}; Server = 250.156.0.1; Database = myDataBase; Uid = userName; Pwd = thePassword;」); – ajtrichards

+0

邁進一步:) PDO ODBC工作完美。但是爲什麼我不使用這個問題有一個問題。服務是用zend框架編寫的。該框架沒有PDO_ODBC。 –

0

在您的PDO語句中,第一個參數可以很好地採用以下格式: 「mssql:host = xxxx; port = xxxx; DBNAME = XXXXXXX;」 注意包含端口。