OCIEnvNlsCreate()失败。当我尝试在PHP中连接我的oracle数据库

时间:2012-03-16 08:37:29

标签: php oracle codeigniter

的phpinfo

_ENV["ORACLE_HOME"] C:\oracle\instantclient_11_2\
_ENV["OS"]  Windows_NT
_ENV["Path"]    C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\oracle\instantclient_11_2;\;

OCI8

OCI8 Support    enabled
Version     1.2.5
Revision    $Revision: 1.269.2.16.2.43 $
Active Persistent Connections   0
Active Connections  0
Temporary Lob support   enabled
Collections support     enabled 

php code

<?php
     $conn = OCILogon('mppd1','mppd1', "121.256.476.86:1521/mydatabase");

$query = 'select * from users';

$stid = OCIParse($conn, $query);
//OCIExecute($stid, OCI_DEFAULT);
while ($succ = OCIFetchInto($stid, $row)) {
foreach ($row as $item) {
echo $item." ";
}
echo "<br>\n";
}

OCILogoff($conn);
?>

我收到此错误

Severity: Warning

Message: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries

5 个答案:

答案 0 :(得分:5)

我解决了它复制Windows中system和system32文件夹中C:\ instantclient_11_2(请检查你的内容)的所有内容,然后我删除了PATH环境变量中C:\ instantclient_11_2的路径。

我正在使用XAMPP和Windows 8,这是我第一次看到这个问题。我总是在几分钟内用xampp和windows正确配置oci 8。我希望这会对你有所帮助。

答案 1 :(得分:1)

在连接到Oracle 11gR2时,我在uwamp 3上遇到了相同的错误。

我从路径变量中删除了Oracle InstantClient,并将所有文件从InstantClient复制到uwamp \ bin \ apache \ bin

它奏效了。

我的设置:

  • 系统:Windows 7
  • Instantclient:instantclient-basiclite-win32-11.1.0.7.0
  • Web服务器:Uwamp3

答案 2 :(得分:0)

https://forums.oracle.com/forums/message.jspa?messageID=1742926#1745145

该页面上有几种可能的解决方案,从重新安装xampp到检查权限到使用本机php oci_connect()。你有没有尝试过这些东西?

答案 3 :(得分:0)

您可能应该下载Instant Client并使用InstantClient的.dll-s替换Oracle客户端的/ instant客户端文件夹的内容。

答案 4 :(得分:0)

您需要将即时客户端的所有内容复制到apache / bin

我正在使用xampp并为我工作。

将即时客户端enter image description here的所有文件复制到apache / bin