我试图通过pdo_dblib(使用PHP版本7.0.22)将Zend应用程序(版本1.11.11)连接到mssql服务器。我知道我的PHP安装有pdo_dblib,因为在终端中运行print(extension_loaded('pdo_dblib'));
会返回1
。在我的.ini文件中:
resources.db.adapter = "pdo_mssql"
resources.db.params.pdoType = "pdo_dblib"
当我使用调试器运行应用程序时,语句$a = extension_loaded('pdo_dblib');
的值为false
。
由于这个PDO::getAvailableDrivers()
不包含pdo_dblib(当然),导致应用程序抛出异常。
有谁知道为什么会出现这个问题,以及如何修复它?
答案 0 :(得分:0)
关键不是Zend,而是测试的细节:
print(extension_loaded('pdo_dblib'));
会返回1
$a = extension_loaded('pdo_dblib');
的值为false
终端上的PHP不保证与同一台机器的Web服务器上的PHP具有相同的配置,甚至是相同的版本。
您需要查看您的托管设置,以了解如何在Web服务器的PHP副本中的php.ini
(或等效文件)中启用扩展程序。 phpinfo()
的输出在您的应用程序中运行,而不是终端,可能有帮助。