PHP使用PDO连接oracle,报错:

PDOException SQLSTATE[HY000]: OCIEnvNlsCreate: Check the character set is valid and that PHP has access to Oracle libraries and NLS data (extpdo_ocioci_driver.c:558)

看报错,定位错误在client的问题,安装的instantclient的版本问题。

这里需要注意的是,instantclient的版本需要和php中的版本对应,且32位对应32位,64位对应64位。


其次,通过phpinfo里面的参数查看


QQ图片20230317210110.png


另外一个关键点


QQ图片20230317210306.png


如果,此处为0.0.0.0,则配置不正确。


可能的原因:

1、你机器上有多个oci.dll,且当前使用的不是你配置的oci

2、vc环境安装不正确

3、尽量别通过复制dll到windows目录来实现,而通过修改环境变量的方式。