2017-09-25 47 views
0

我試圖通過pdo_dblib(使用PHP版本7.0.22)將Zend應用程序(版本1.11.11)連接到一個mssql服務器。我知道我的PHP安裝包含pdo_dblib,因爲在終端中運行print(extension_loaded('pdo_dblib'));返回1。在.ini文件,我有:Zend不加載pdo_dblib

resources.db.adapter = "pdo_mssql" 
resources.db.params.pdoType = "pdo_dblib" 

當我與一個調試器中運行應用程序時,聲明$a = extension_loaded('pdo_dblib');的價值false

由於此PDO::getAvailableDrivers()不包含pdo_dblib(當然),這會導致應用程序拋出異常。

有誰知道爲什麼會出現這個問題,以及如何解決它?

+0

http://php.net/manual/en/pdo.installation.php你啓用了擴展嗎?在Linux上,它會是'php_pdo_mssql.so' – bassxzero

回答

0

的關鍵不在於Zend的,但在測試中的微妙細節:

  • 運行在返回1
  • 終端print(extension_loaded('pdo_dblib'));當我用調試器中運行應用,值的聲明$a = extension_loaded('pdo_dblib');false

在終端上的PHP不能保證與相同機器的Web服務器上的PHP具有相同的配置,甚至是相同的版本。

您將需要查看您的主機設置,以瞭解如何在Web服務器的PHP副本中啓用php.ini(或同等版本)中的擴展。在您的應用程序中運行phpinfo()的輸出,而不是終端,可能會有所幫助。