【问题标题】:Connecting to DB2 through PHP通过 PHP 连接到 DB2
【发布时间】:2011-01-01 08:29:39
【问题描述】:

我正在尝试使用 XAMPP 从 Windows 机器连接到 DB2 数据库。

当我尝试加载 php_ibm_db2 模块时,出现以下错误

"PHP 启动:ibm_db2:无法初始化模块 使用模块 API=20060613 编译的模块 使用模块 API=20090626 编译的 PHP 这些选项需要匹配”

如何解决这个问题并连接到 db2 数据库?

【问题讨论】:

    标签: php db2


    【解决方案1】:

    这意味着您正在尝试使用旧的 (似乎:它来自 2006 年) 版本的 imb_db2 .dll 文件,以及最近的 (它来自 2009 年) em> PHP 版本。您应该为 PHP 和扩展使用相同的版本。

    http://downloads.php.net/pierre/ 提供了一些扩展 .dll 的最新版本;其中,php_ibm_db2.dll 1.8 有几个版本;运气好的话,也许它们会匹配你的 PHP 版本——而且 PHP 5.2 和 5.3 都有版本。

    【讨论】:

    • 我使用了其中一个版本并将其放在 PHP 正在寻找扩展的 ext 目录中。我现在收到此错误“PHP 启动:无法加载动态库 'C:\xampp\php\ext\php_ibm_db2.dll' - 找不到指定的模块。”我重新启动了 XAMPP,仔细检查以确保模块在该目录中(它是)。为什么找不到?
    • 哼,不好(而且我这里没有windows机器,不能自己测试);;您是否使用了与您的 PHP 版本匹配的版本(即 ts 与非 ts ?)
    • 哦 :-( 抱歉,那我帮不了你太多了;也许你有另一个答案会更幸运......祝你好运!
    • "module could not be found" 是 Windows 告诉您缺少运行时依赖项 (DLL) 的可爱小方法。使用 Dependency Walker 之类的工具打开 C:\xampp\php\ext\php_ibm_db2.dll 并查看缺少的 DLL 是什么 - 这些通常有一个“客户端库”组件(用于 PgSQL 的 libpq、用于 MySQL 的 libmysqlclient、用于 MSSQL 的 dblib等)
    【解决方案2】:

    您有不同的“版本”: 20060613 和 20090626

    这些是你自己编译的吗?重新编译。

    【讨论】:

    • 哎呀,我应该更仔细地阅读。您的版本不匹配。你如何加载模块?
    【解决方案3】:

    最佳答案已接近,但没有 PHP 5.3.2 VC9(Windows)NTS(非线程安全)所需的正确 php_ibm_db2.dll。但我找到了一个拥有它的——还有更多!链接:

    PHP IBM DB2 DLLs on SourceForge via Technology Explorer for DB2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 2014-08-16
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 2018-08-03
      相关资源
      最近更新 更多