我必须在安装了Apache 2.4.54/php 8.1.9(VS16 x64线程安全(的Windows 10(版本20H2(上测试php应用程序。
informix-clientsdk-4.50.FC8已安装,INFORMIXDIR环境变量指向informix客户端sdk安装路径。
在PECL PHP PDO_INFORMIX页面中(https://pecl.php.net/package/PDO_INFORMIX),我找不到Informix驱动程序的最新1.3.6版本的Windows dll版本。
在变更日志中,我可以看到对PHP8.1版本的支持是从1.3.5版本开始添加的。
你知道在哪里可以下载与php 8.1.9兼容的php_pdo_informix.dll文件(1.3.5或1.3.6(吗?
我已尝试使用php_pdo_informix1.3.3-7.4-vc15-ts-x64.dll文件,该文件位于https://github.com/flachglasschweiz/php_pdo_informix/tree/master/x64但我总是收到愚蠢的错误信息:
-
在Apache启动时:PHP警告:PHP启动:无法在第0行上的未知中加载动态库"pdo_informix"(已尝试:C:\php8\ext\pdo_ininformix(Le module sp\xc3\xa9cifi\xc3\xa9 est intruvable(,C:\php8\ext\PHP_pdo_informix.dll
-
当php尝试连接到Informix数据库时:错误:找不到驱动程序
你能帮我吗?
谢谢和问候。
您需要为PHP 8.x构建DLL。为7.x构建的DLL(如Flachglasschweiz的repo中的最新DLL(将不起作用,因为它依赖于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>
我在这里发布了一个悬而未决的问题的DLL。他似乎再也没有构建扩展的环境了,所以从源代码构建对于任何InformixPHP用户来说都是最好的方法;(