【发布时间】:2010-09-10 03:05:12
【问题描述】:
如何从 PHP 连接到远程 Oracle 数据库实例?
我需要查询(只读)远程 Oracle 数据库以获取一些信息;我需要安装 Oracle Instant Client 吗?
PHP 的 OCI 扩展够用吗?
【问题讨论】:
如何从 PHP 连接到远程 Oracle 数据库实例?
我需要查询(只读)远程 Oracle 数据库以获取一些信息;我需要安装 Oracle Instant Client 吗?
PHP 的 OCI 扩展够用吗?
【问题讨论】:
我在PHP documentation的“备注”部分看到了这个:
如果您将 PHP 与 Oracle Instant Client 一起使用,您可以使用简单的连接命名方法 (...)
所以我认为很明显,您可以在没有 Oracle Instant Client 的情况下仅使用 PHP Oracle 扩展来连接到 Oracle DB。
【讨论】:
您需要完成几个步骤才能完成这项工作。
首先,您需要为您拥有的任何操作系统安装 oracle 驱动程序。然后,为 odbc 创建一个 DSN,用于将 php 函数调用连接到 oracle 数据库。在 Windows 上,您可以在控制面板 -> ODBC 源
上找到它完成此操作后,重新启动数据库、Web 服务器,然后您应该可以使用以下命令对其进行测试:
odbc_connect($dsn,$user,$pass);
如果您有 linux,则需要相同的步骤,但我不确定您如何在 unix 中创建 DSN。
【讨论】:
您需要 Oracle 客户端库才能使用此扩展。
安装所有必需文件的最便捷方法是使用 Oracle Instant Client,可从 Oracle's site 获得该客户端
【讨论】:
如果您尝试使用 PHP 连接到 ubuntu 上的 oracle,以下链接非常有用:
A)http://pecl.php.net/bugs/bug.php?id=9253
这是真正的主力 - 它为您提供几乎所有您需要的数据。
B)http://fabrizioballiano.net/2008/01/26/how-to-install-php-pdo_oci-on-ubuntu-gutsy/
这也有助于详细了解需要为 oracle 与 ubuntu 一起安装的内容。
如果您将它与 PHP 一起使用,您需要确保 TNS_ADMIN 和 ORACLE_HOME 环境变量可供 apache 的用户使用 - 在 apache2 目录中有一个名为“envvars”的文件,您可以在其中设置这些变量。 (为了我自己的使用方便,我把这两个指向同一个目录。)
【讨论】:
在 Oracle 中使用 PHP 的最佳手册是 Underground PHP Oracle Manual。定期更新。例如上次更新描述了新的酷 OCI(Oracle 调用接口)特性。我偶然发现了它,从那以后就再也没有后悔过。从那本好手册开始。
【讨论】: