oci8、php7 和 Oracle 10.1 兼容性

oci8, php7 and Oracle 10.1 compatibility

我必须将系统从 php5.6 升级到 php7.2。系统使用 oracle 10.1 数据库。

现在我尝试收集所有信息,但仍然对 phpoci8instant client 和数据库之间的兼容性感到困惑。

我读到,对于 php7 我必须至少安装 oci8 2.1,但这不适用于 oracle 10.1

对吗?

或者是否可以 运行 php7 与 oracle 10.1

请赐教:)

I read, that with php7 I have to at least install oci8 2.1, but this doesn't work with oracle 10.1.

Is that correct?

没有。来自 manual:

OCI8 2.0 requires Oracle 12c, 11g or 10g client libraries and will install on PHP 5.2 onwards.

请注意,您使用的 Oracle 客户端版本不需要与服务器版本匹配。 来自同一手册页(为了便于阅读,重新格式化为项目符号):

  • If OCI8 uses 9iR2 client libraries, then PHP can connect to Oracle Database 8i, 9iR2, 10g or 11g.
  • If OCI8 uses 10gR2 client libraries, the database can be 9iR2, 10g, 11g or 12c.
  • If OCI8 uses 11g client libraries, the database can be 9iR2, 10g, 11g or 12c.
  • If OCI8 uses 12c client libraries, the database can be 10gR2, 11g or 12c.

所以只有最后一个场景(12c 客户端库)需要数据库版本大于 10.1。

无论手册怎么说,我都强烈建议您构建一个测试实例,看看您是否有任何问题。


编辑: 来自 OCI8 package PECL page 的更多信息:

Oracle's standard cross-version connectivity applies. For example, PHP OCI8 linked with Instant Client 11.2 can connect to Oracle Database 9.2 onward. See Oracle's note "Oracle Client / Server Interoperability Support" (ID 207303.1) for details.