【问题标题】:PHP Fatal error: Class 'COM' not foundPHP致命错误:找不到类'COM'
【发布时间】:2013-08-16 22:11:05
【问题描述】:

将 PHP 升级到 v. 5.5.1 后出现此错误:

Fatal error: Class 'COM' not found in
C:\inetpub\wwwroot\ndsystems\database_engine\mssql_engine.php on line 184

mssql_engine.php 文件中的第 184 行:

$this->COMConnection = new COM('ADODB.Connection');    //line 184
try {
    $this->COMConnection->Open($connectionString);
    $this->RetrieveServerVersion();
} catch (com_exception $e) {
    $this->lastError = $e->getMessage();
    $result = false;
}
return $result;

环境是 Windows 2008 R2 SP1, IIS 7

我尝试过的事情:

  1. 在 php.ini 末尾添加:

    [PHP_COM_DOTNET]
    
    extension=php_com_dotnet.dll
    
  2. 在 php.ini 的 [PHP] 部分添加了extension=php_com_dotnet.dll

  3. 重新启动 IIS 并重新启动服务器本身。

  4. 将 PHP 降级到 5.3.27

似乎没有任何效果。如何解决此错误?

【问题讨论】:

  • 放入测试 php 脚本中,在浏览器中打开。查看“com_dotnet”部分是否存在以及“COM 支持”是否“启用”。
  • 出于好奇,既然可以使用 PHP 的 mssql SQL Server 客户端库,为什么还要使用 ADO?
  • @Dai - 我对 php 不太了解,所以我使用了 sqlmaestro 的 php 生成器用于 MSSQL 数据库。
  • @jszobody - 我看到的对 com_dotnet 的唯一引用是在配置命令部分:cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "- -disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci =C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\ php-sdk\oracle\instantclient11\sdk,shared""--with-enchant=shared""--enable-object-out-dir=../obj/""--enable-com-dotnet=shared"" --with-mcrypt=static" "--disable-static-analyze

标签: php windows iis-7


【解决方案1】:

除了添加

[PHP_COM_DOTNET]
extension=php_com_dotnet.dll

到您的php.ini 文件,您必须告诉 PHP 在哪里寻找扩展,并启用扩展。

要告诉 PHP 在 Windows 上何处查找扩展,只需取消注释(删除前导 ;)以下行:

extension_dir = "ext"

要启用扩展,请将启用标志设置为 On:

enable_dl = On

【讨论】:

  • OP 可能不想 enable_dl = on ,因为他使用 IIS,而 php.ini 说:The dl() function does NOT work properly in multithreaded servers, such as IIS or Zeus, and is automatically disabled on them.
猜你喜欢
  • 2017-11-14
  • 2014-11-03
  • 2012-07-27
  • 2015-03-20
  • 2022-01-02
  • 2013-09-27
  • 2016-08-21
  • 2014-05-08
  • 2012-08-02
相关资源
最近更新 更多