php连接oracle

1.安装oracle客户端,不管是32位还是64位;当系统是32位的时候,要装32位的客户端,PL/SQL才能给连上数据库

2.php.ini中对应的oracle相关扩展打开。php_openssl.dll,php_oci8.dll,如果装的是11g的话,不打开php_oci8.dll,而是php_oci8_11g.dll。如果有php_oracle.dll的话,就打开。

3.写个测试代码进行连接测试,如下:

<?php
$dbconn = oci_connect('test','test',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.21.1.10)(PORT=1521))(CONNECT_DATA=(SID=vasd)))");
if ($dbconn) {
echo '连接成功';
}else {
echo '连接失败';
}

注意:每次修改都重启哈apache服务。

如果报错,找不到oci_connect方法,则说明phpinfo中没有找到oci8扩展信息,则需要将oracle客户端下的响应的dll拷贝到apache的bin目录下。例如,我装的是oracle 11g的,那么拷贝的dll文件是instantclient_11_2目录下的oci.dll,orannzsbb11.dll,oraociei11.dll;

如果继续报错Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with ......library,则说明需要为oracle客户端配置响应的环境变量

Path(在变量中加入)                                 D:oracle instantclient
  LD_LIBRARY_PATH                                      D:oracle instantclient
  NLS_LANG                                   SIMPLIFIED CHINESE_CHINA.ZHS16GBK
  ORACLE_HOME                                          D:oracle instantclient
  SQL_PATH                                             D:oracle instantclient
  TNS_ADMIN                                            D:oracle instantclient

如果安装了oarcle服务端,则将tnsnames.ora文件拷贝到instantclient目录下,没有的话,就想办法让instantclient目录下有tnsnames.ora文件。

原文地址:https://www.cnblogs.com/xingmeng/p/3298941.html