PHP操作Oracle踩的坑

PHP操作Oracle踩的坑

项目使用的是Laravel,操作oracle的库使用yajra/laravel-oci8。在环境配通之后,操作oracle就像操作mysql一样,所以难点还是环境。

要想操作Oracle需要两样东西:oracle-instantclient11.2-basic和php-oci8,前者是oracle的客户端,后者是php扩展。可以操作oracle的php扩展有两种:pdo-oci和oci8,只不过pdo-oci已多年不更新。

下面是在oracle和oci8已配好后,出现的坑。

1. 连接不上Oracle时,没有出现报错信息

这是laravel-oci8包的问题,在连接oracle时,把报错信息屏蔽了,调试时把屏蔽关了就行。

2. ORA-24408: could not generate unique server group name

需要在本地的hosts中,添加一条 127.0.0.1 本机名 的解析。

3. oci_connect fails OCIEnvNlsCreate()

网上看到这个问题的解决方案很多,而我在连接时报的错的详细信息是没有找到ORACLE_HOME和LD_LIBRARY_PATH这俩环境变量。其实是有的,我用服务器的root用户,能看到这俩变量。但是nginx使用的是nobody用户,所以这个问题的原因nobody用户没有这俩变量,设置之后问题就解决了。

猜你喜欢

转载自www.cnblogs.com/biangbiangmian/p/10772732.html
今日推荐