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文件。