【问题标题】:pdo's error with oraclepdo 与 oracle 的错误
【发布时间】:2018-10-16 13:34:58
【问题描述】:

当我使用 PDO 连接到 Oracle DBMS 时,我遇到了这个问题:

SQLSTATE[HY000]: OCIEnvNlsCreate: 检查字符集是否有效并且 PHP 可以访问 Oracle 库和 NLS 数据 (ext\pdo_oci\oci_driver.c:619)。

我在环境变量中添加了ORACLE_HOME,NLS_LANG,PATH,php的配置是对的。

以下是我的设置和配置:

NLS_LANGORACLE_HOMEPATHphp-ociPDOphp.ini

设置环境变量后我在cmd中使用set PATH=C:重启cmd生效。

我的平台是Windows Server 2008,我正在使用带有php7.0.12 的Web 开发环境PHPStudy。我从Oracle 网站 Instant Client for Microsoft Windows (32-bit)(12.2.0.1. 0)

【问题讨论】:

  • 现在我在 php 中使用oci_client_version(),但我只得到0.0.0.0

标签: php oracle pdo


【解决方案1】:

我已经通过将instantclient_12_2 中的oraociei12.dll 复制到E:\phpStudy\PHPTutorial\php\php-7.0.12-nts 解决了这个问题。好神奇!

【讨论】:

  • 这表明您要么安装了多个 Oracle 客户端库,要么您的第三方 PHP 发行版忽略了系统 PATH。
  • 但是我可以使用 getenv() 获取环境变量,而且我的服务器中只安装了一个 Oracle 客户端。我很困惑。
  • 好吧,当然,设置 OCI8 总是涉及一些魔法...... xD
猜你喜欢
  • 2014-03-27
  • 1970-01-01
  • 2014-12-09
  • 2011-12-28
  • 2014-10-07
  • 2012-11-22
  • 2014-10-31
  • 2016-04-05
  • 1970-01-01
相关资源
最近更新 更多