yii2与oracle和pdo_oci错误ORA-01804

时间:2014-06-30 18:00:46

标签: php oracle pdo yii2 oracle12c

Oracle 12c。 我可以使用sqldeveloper远程连接到DB。 我可以用sqlplus连接到DB。

我无法使gii工作,显示错误:

  

引起:PDOException   SQLSTATE [HY000]:pdo_oci_handle_factory:尝试检索错误的文本时出错ORA-01804   (/root/rpmbuild/BUILD/php-5.4.1/ext/pdo_oci/oci_driver.c:631)

此php代码生成相同的错误:

  1 <?php
  2         $param = $_POST;
  3         $db_username = "<my username>";
  4         $db_password = "<my password>";
  5         $db = "oci:dbname=ORCL";
  6 try{
  7         $conn = new PDO($db,$db_username,$db_password);
  8         $stmt = $conn->exec("select * from employee;");
  9 }catch(PDOException $e){
 10         echo ($e->getMessage());
 11 }
 12
 13 ?>

我的phpinfo.php显示:PDO驱动程序sdblib,firebird,mysql,oci,odbc,pgsql,sqlite 但 php -i | grep pdo 没有显示pdo_oci

在phpinfo.php标题下&#34; PDO_OCI&#34;它没有条目。只是标题和列标题&#34; OCI 8及更高版本的#PDO驱动程序&#34; &#34;启用&#34;没有更多的数据行。

我已添加&#34; - with-pdo-oci = shared,$ ORACLE_HOME&#34;配置php编译并添加&#34; extension = pdo_oci.so&#34;到名为/etc/php.d/pdo_oci.ini的文件

这也是我的oracle timezone文件夹:

 # ls /base/product/12.1.0/db_1/oracore/zoneinfo/
big              timezlrg_11.dat  timezlrg_16.dat  timezlrg_3.dat  timezlrg_8.dat   timezone_12.dat  timezone_17.dat  timezone_4.dat  timezone_9.dat
little           timezlrg_12.dat  timezlrg_17.dat  timezlrg_4.dat  timezlrg_9.dat   timezone_13.dat  timezone_18.dat  timezone_5.dat  timezone.dat
readme.txt       timezlrg_13.dat  timezlrg_18.dat  timezlrg_5.dat  timezlrg.dat     timezone_14.dat  timezone_1.dat   timezone_6.dat
timezdif.csv     timezlrg_14.dat  timezlrg_1.dat   timezlrg_6.dat  timezone_10.dat  timezone_15.dat  timezone_2.dat   timezone_7.dat
timezlrg_10.dat  timezlrg_15.dat  timezlrg_2.dat   timezlrg_7.dat  timezone_11.dat  timezone_16.dat  timezone_3.dat   timezone_8.dat

timezone.dat和timezonelrg.dat是最​​大的sufix对应物的符号链接。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

奇怪的错误。我通过这样做来解决它:

cp /base/product/12.1.0/db_1/inventory/Scripts/ext/lib/libociei.so /base/product/12.1.0/db_1/lib /

这意味着将libociei.so放在$ ORACLE_HOME / lib

编码的评论给了我一些提示。从这里Oracle with node-oracle: Error while trying to retrieve text for error ORA-01804