2

我正在尝试通过 PDO 连接到 php 中的 Oracle 11g Express Edition 数据库。我已经安装了 xampp,我还有一个(据说)可以工作的 pdo_oci 扩展,它也出现在 phpinfo() 中。我的数据库工作正常,我可以通过 sql 控制台和/或 sql 开发人员连接到它。我已启用扩展 php_pdo_oci.dll

我的代码是:

$db_username = "system";
$db_password = "mypass";
$db = "oci:dbname=xe";
$conn = new PDO($db,$db_username,$db_password);

我收到以下错误:

致命错误:在 ...

所以这真的说明不了什么。

如果我尝试通过 oci_connect 连接并启用扩展 php_oci8_11g.dll(并禁用 pdo 扩展),则使用以下代码:

$conn = oci_connect('system', 'mypass', 'localhost/XE');

我收到此错误:

警告:oci_connect() [function.oci-connect]: OCIEnvNlsCreate() 失败。您的系统有问题 - 请检查 PATH 中是否包含带有 Oracle Instant Client 库的目录...

那么什么是 Oracle Instant Client?我只下载了 Oracle Express Edition,并添加了 ORACLE_HOME 和 LD_LIBRARY_PATH 作为环境变量,还添加了 PATH 的路径。我错过了什么吗?

先感谢您

4

1 回答 1

2

好的,我想我已经修好了,所以如果其他人需要它:

我下载了 Oracle Instant Client。在此之后,它仍然抱怨我应该将它的位置放在 PATH 中,即使它已经在那里。

因此,我将 Instant Client 中的所有文件(可能您不需要全部,但无论如何)复制到 apache/bin 目录中,瞧,它起作用了。

于 2013-03-06T11:31:29.743 回答