PHP v5.2.6 链接远程Oracle数据库
Posted dii233
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP v5.2.6 链接远程Oracle数据库相关的知识,希望对你有一定的参考价值。
根据需求,要通过服务器A,使用php访问并操作服务器B的Oracle数据库,对其进行insert操作。
服务器A:
Windows server 2003;PHP v5.2.6(32位);IIS服务;
服务器B:
Oracle数据库;
主要工作,实现服务器A对B进行连接访问。
step1:
在服务器上安装Oracle客户端;
可在网盘链接:https://pan.baidu.com/s/1NPWV2AlxQRgVyVslU0r3lg(提取码:9jdn)下载,其中包括11版本和10版本的basic和sqlplus组合(均为32位),两个都要下载,我这里用的是10。
首先,将下载的basic文件解压在服务器A的D:oracleinstantclient10_1 下,将sqlplus解压,并将全部文件复制到和basic同样的目录下D:oracle;
将D:oracleinstantclient10_1 下的oci.dll文件,copy到C:WINDOWSsystem32 下;
新建文件TNSNAMES.ORA,编辑内容为:
------------------------------------------
****(任意name) =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = *****(服务器B的IP地址))(PORT = 1521))
)
(CONNECT_DATA =
(SID = ****(任意name))
(SERVER = DEDICATED)
)
)
------------------------------------------
完成后将其放在D:oracleinstantclient10_1下,覆盖掉;
step2:
配置环境变量;
在环境变量Path中,添加D:oracleinstantclient10_1 (该路径为oracle客户端的路径);
新建环境变量名为TNS_ADMIN,路径为D:oracleinstantclient10_1 (该路径为TNSNAMES.ORA文件的路径);
新建环境变量名为NLS_LANG,内容为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK (该变量为语言控制);
同时,确保path中,有C:WINDOWSsystem32路径的指向并且正确;
step3:
通过cmd窗口,执行连接服务器B的操作,测试连接:
当看到上图时为连接成功!
step4:
将服务器A的PHP环境下的php5ts.dll 和ext文件下的php_oci8.dll文件同时copy到C:WINDOWSsystem32下;
(前提确保PHP环境已经配置安装成功,这里不介绍PHP的安装配置);
修改php.ini配置文件,将extension=php_oci8.dll的注释符号去掉
之后,编写一个简单的php文件,test.php ,使用phpinfo();
访问该php页面可以看到oci8模块已启用!
step5:
修改test.php文件,将phpinfo()删掉,使用php访问连接Oracle数据库,并进行查询:
再次访问test.php 文件:成功会看到
到这里,就实现了服务器A通过PHP链接操作服务B的Oracle数据库了!!!
-----------------------------------------------------------------------
注意:
1.如果你的php版本是大于php v5.1的,不能安装Oracle9的客户端,因为5.1版本之后只兼容Oracle10以后的客户端!!!(我在搭建环境时,主要被Oracle9版本困扰住,起初不知道PHP v5.1之后的版本不兼容Oracle9,只支持Oracle10之后的版本)
2.确保环境变量配置正确和完整!!!有C:windowssystem32 的配置!!!(因为可能会由于你之前安装和卸载程序时的错误操作使其丢失或指向不对)
3.将oracle客户端中的oci.dll ,php下的php5ts.dll ,php中ext下的php_oci8.dll ,复制到C:windowssystem32 下!!!
谢谢(可能有疏忽的地方或不准确的,请评论提出)
以上是关于PHP v5.2.6 链接远程Oracle数据库的主要内容,如果未能解决你的问题,请参考以下文章