我必须在安装了 Apache 2.4.54 / PHP 8.1.9(VS16 x64 线程安全)的 Windows 10(版本 20H2)上测试 php 应用程序。
已安装 informix-client-sdk-4.50.FC8,并且 INFORMIXDIR 环境变量指向 Informix 客户端 SDK 安装路径。
在 PECL PHP PDO_INFORMIX 页面中(https://pecl.php.net/package/PDO_INFORMIX https://pecl.php.net/package/PDO_INFORMIX),我找不到最新1.3.6版本的Informix驱动程序的Windows dll版本。
在changelog中,我可以看到自1.3.5版本以来增加了对PHP 8.1版本的支持。
您知道在哪里可以下载与 PHP 8.1.9 兼容的 php_pdo_informix.dll 文件(1.3.5 或 1.3.6)?
我尝试过使用位于以下位置的 php_pdo_informix-1.3.3-7.4-vc15-ts-x64.dll 文件https://github.com/flachglasschweiz/php_pdo_informix/tree/master/x64 https://github.com/flachglasschweiz/php_pdo_informix/tree/master/x64但我总是有以下错误消息:
-
在 Apache 启动时:
PHP 警告:PHP 启动:无法加载动态库“pdo_informix”(尝试过:C:\php8\ext\pdo_informix(Le module sp\xc3\xa9cifi\xc3\xa9 est introuvable)、C:\php8\ext\php_pdo_informix。 dll (Le module sp\xc3\xa9cifi\xc3\xa9 est introuvable)) 在第 0 行未知
-
当 php 尝试连接到 Informix 数据库时:
错误:找不到驱动程序
请你帮助我好吗?
感谢致敬。
您需要为 PHP 8.x 构建 DLL。为 7.x 完成的一项(就像 Flachglasschweiz 的最新一项)repo https://github.com/flachglasschweiz/php_pdo_informix)将不起作用,因为它依赖于php7ts.dll
.
您可以尝试从源代码构建它。使用最新的 1.3.6 和 VC2019 进行快速测试,它似乎按预期工作:
C:\php>php --version
PHP 8.1.9 (cli) (built: Aug 2 2022 14:17:26) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.1.9, Copyright (c) Zend Technologies
C:\php>cat t.php
<?php
try {
$conn = new PDO("informix:database=stores7;server=ids1410;", "informix", "password");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
print "Connected!\n";
$stmt = $conn->query("select tabname from systables");
$res = $stmt->fetch( PDO::FETCH_BOTH );
$rows = $res[0];
echo "tabname: $rows.\n";
} catch (PDOException $e) {
print $e->getMessage();
}
?>
C:\php>php t.php
Connected!
tabname: systables.
C:\php>
我在待决问题之一中发布了 DLLhere https://github.com/flachglasschweiz/php_pdo_informix/issues/6。看起来他已经没有环境来构建扩展了,因此从源代码构建对于任何 Informix PHP 用户来说都是最好的方法;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)