【问题标题】:php_pdo_informix on php 5.3php 5.3 上的 php_pdo_informix
【发布时间】:2012-08-07 05:45:30
【问题描述】:

我有一个广泛使用 PDO 的 php 应用程序,并且有一个具有 informix 的新客户端。以前我们使用 php 5.2 没有任何问题,但切换到 PHP 5.3 是不可避免的,所以:

有人找到了在 php5.3 上使用 php_pdo_informix 的方法,还是它完全过时了,我必须找到另一种替代方法?

这对于我们的测试环境 (CentOS) 是必需的,但开发人员目前在 Windows 上工作时我们遇到了类似的问题。有一个 php_pdo_informix.dll 但它是针对 php5.2 编译的并且拒绝在 php5.3 上加载

有人有php5.3的dll吗?

谢谢

我已经试过了:

$ sudo pecl install pdo_informix
pecl.php.net is using a unsupported protocol - This should never happen.
pecl/PDO_INFORMIX requires package "pear/PDO"
No valid packages found
install failed

pecl install --alldeps pdo_informix

表明它依赖于 pear/PDO,但在 5.3 中已被弃用

并且使用显式版本 1.2.6 、 1.2.7 无济于事

即使我尝试安装 pear/PDO,它也会失败并出现许多错误,这是预期的,因为 PHP 中有许多 API 更改会中断。

尝试预先安装pdo时出现这种错误:(省略了一些行)

$ sudo pecl install  pdo
WARNING: "pecl/PDO" is deprecated in favor of "channel://http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo//ext/PDO"
downloading PDO-1.0.3.tgz ...
Starting to download PDO-1.0.3.tgz (52,613 bytes)
.............done: 52,613 bytes
12 source files, building
<...more lines ...>
/tmp/pear/temp/PDO/pdo_dbh.c: In function 'pdo_stmt_instantiate':
/tmp/pear/temp/PDO/pdo_dbh.c:410:8: error: 'zval' has no member named 'refcount'
/tmp/pear/temp/PDO/pdo_dbh.c:411:8: error: 'zval' has no member named 'is_ref'
/tmp/pear/temp/PDO/pdo_dbh.c: In function 'pdo_stmt_construct':
/tmp/pear/temp/PDO/pdo_dbh.c:435:6: error: 'zend_fcall_info' has no member named 'object_pp'
/tmp/pear/temp/PDO/pdo_dbh.c:458:6: error: 'zend_fcall_info_cache' has no member named 'object_pp'
/tmp/pear/temp/PDO/pdo_dbh.c: In function 'zim_PDO_setAttribute':
/tmp/pear/temp/PDO/pdo_dbh.c:752:12: error: 'zval' has no member named 'refcount'
/tmp/pear/temp/PDO/pdo_dbh.c: In function 'zim_PDO_getAttribute':
/tmp/pear/temp/PDO/pdo_dbh.c:818:28: error: 'zval' has no member named 'refcount'
/tmp/pear/temp/PDO/pdo_dbh.c: In function 'pdo_hash_methods':
/tmp/pear/temp/PDO/pdo_dbh.c:1122:24: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
/tmp/pear/temp/PDO/pdo_dbh.c:1126:20: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
make: *** [pdo_dbh.lo] Error 1
ERROR: `make' failed

如果我尝试安装特定的 pdo_informix 版本,我会得到以下输出:

pecl install --alldeps  http://pecl.php.net/get/PDO_INFORMIX-1.2.6.tgz 
downloading PDO_INFORMIX-1.2.6.tgz ...
Starting to download PDO_INFORMIX-1.2.6.tgz (65,676 bytes)
.................done: 65,676 bytes
WARNING: "pecl/PDO" is deprecated in favor of "channel://http://svn.php.net/viewvc/php/php-  src/trunk/ext/pdo//ext/PDO"
downloading PDO-1.0.3.tgz ...
Starting to download PDO-1.0.3.tgz (52,613 bytes)
...done: 52,613 bytes
12 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
<more lines>
<same output as above>

【问题讨论】:

  • pear 没有 PDO 类。你得到了什么确切的错误?
  • 问题已编辑。那种错误。似乎有人让它工作了,但没有任何关于他是如何做到的文档离开。
  • 我查看了PDO 的 PECL 页面,它确实说您不再需要安装它,因为 PDO 现在是 PHP 核心的一部分。 '不要使用它,因为 PDO 已被移入核心(php 源),所以这个 pecl 扩展已死。' 但这并不意味着 PDO 已死;只是它始终存在于 PHP 中,因为它位于核心中。你不需要安装它。
  • 这与我得出的结论相同。但是我找不到在 php53 上使用 pdo_informix 的方法,而不是在 CentOS、Lubuntu 或 Windows 上
  • 你需要编译模块。官方链接:ibm.com/developerworks/data/library/techarticle/…

标签: php pdo informix


【解决方案1】:

PDO 是核心的一部分;无需从 pecl 安装。

可能你必须安装 你的 linux 发行版的 php-pdo-informix 包,例如通过apt-getyum

【讨论】:

  • 我认为“pecl install pdo_informix”应该已经完成​​了。但它什么也没做。你是在说别的吗?谢谢
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2012-01-30
    • 2011-06-04
    • 2010-12-03
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2012-07-19
    • 2012-01-08
    • 2014-03-13
    相关资源
    最近更新 更多