vs连接oracle12c动态链接库,PHP连接Oracle12c数据库-Go语言中文社区

1、这里假设读者安装完毕,我安装的是wamp64位(PHP集成环境)+Oracle12,wamp自带mysql,但是有时候必须要使用Oracle或者像我期末作业需要等因素。

安装wamp,百度寻找相应安装步骤,我是腾讯安全管家的软件管理直接安装好,再需要另行相应一些参数的配置

2、我们需要相应的去官网下载PHP扩展包,一般PHP自带扩展的oracle10和oracle11g连接的扩展动态链接库(dll文件),注意自己的wamp版本位数,最后oci扩展不成功可能是这个原因

仔细阅读Description描述内容,可能你安装的php跟我的版本不一样,需要变通下载相应的文件,我的PHP版本是5.5.12,因此下载的是oci8-2.0.12

7396d94e418693e0d530a0fec19ca453.png

3、那么如何知道自己PHP版本情况呢?

(1)若安装的是wamp,则可以直接右下角wamp图标,左键->PHP->version,可以查看到PHP版本情况

(2)也可以直接利用自己的PHP编程工具,利用PHP输出相应的版本信息<?php

Phpinfo();

?>

我的执行结果:

ede2221adc6ce087155521c08f0c5406.png

4、下载完oci8-2.0.12后,我们会用到三个重要的动态链接库文件,分别是php_oci8.dll、php_oci8_11g.dll、php_oci8_12c.dll,这里我们需要用到相应版本的链接库,我的是Oracle12c,则是php_oci8_12c.dll,首先我们需要找到右下角wamp->PHP->php.in文件,然后找到 下图中的地方添加extension=php_oci8_12c.dll  ; Use with Oracle 12c Instant Client,封号表示注释,需要用什么版本就是把前面的封号去掉

7db19cee2a76735fb0753c41a851b46a.png

5、复制相应的动态链接库到两个地方

(1)$wamp安装目录binphpphp5.5.12ext

(2)   C:WindowsSystem32

PS:可能还要复制到C:WindowsSysWOW64

6、将wamp->PHP->PHP extensions,把php_oci8_12c、php_oci8、php_pdo_oci勾上

7、重启wamp

8、至此,我们要看是否已经wamp是否成功扩展oci组件

26a348a213a9d2ec1a25023003a87550.png

当执行第一步phpinfo()显示如上图就代表成功,若没有则失败。失败的原因就是可能是很多原因,要么是版本的问题,要么是wamp位数的问题。

下面讲同局域网共同使用同数据库,那么要么安装完整的oracle,要么安装基本组件,来连接同一局域网远程电脑的oracle:

第一步 需要到oracle官方下载一个install client 包,在win下找到你对应系统版本的zip(注意这里是系统版本)

例如选择 Instant Client for Microsoft Windows (x64) 因为php扩展的是OCI,所以必须选对应版本的最全的那个,别的都没有OCI,这里下载可能需要有个账号,验证以后就可以下载,直接用连接下载不好用,没有的话注册一下就好了

第三,解压下载的第一个文件,到电脑任意目录,解压后得到文件目录 instantclient_12 _1 建议把后面的 "_12_1"去掉,以后改版本就不用动环境变量了

进入这个目录后双击打开 adrci.exe

得到如下命令行窗口,证明这个客户端在你本地可用

16353015K-0.png

复制目录,我的是 F:devinstantclient 配置到系统的path环境变量,,然后重启即可,再执行phpinfo,可以见到oci扩展成功。

9、执行PHP连接数据库代码<?php

//这是oracle的监听部分,HOST是数据库IP地址,PORT是数据库端口号,SID是服务号

//$oraDB="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.62.172.9)(PORT=1521)))(CONNECT_DATA=(SID=orcl)))";

//oci_connect('账号','密码',$oraDB,可省略的编码);//倒数第二个参数或者为空“”,默认连接本机,第一个参数是

//$conn = oci_connect('c##scott','tiger',$oraDB,'utf8');

$conn = oci_connect('c##scott','tiger','','utf8');

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);

if ($nrows > 0) {

echo "

echo "

n";

foreach ($results as $key => $val) {

echo "

$keyn";

}

echo "

n";

for ($i = 0; $i < $nrows; $i++) {

echo "

n";

foreach ($results as $data) {

echo "

$data[$i]n";

}

echo "

n";

}

echo "

n";

} else {

echo "No data found
n";

}

echo " $nrows Records Selected
n";

oci_free_statement($stmt);

oci_close($conn);

?>

10.做完以上步骤我们并没有真正意义上的利用IP地址进行连接数据库,而是只能默认使用本地来连接数据库,而往往我们需要一台数据库,多台电脑进行连接查询使用。这一步的灵感来自于以下,花了很多时间。第一次了解到Oracle的端口号默认是会改变的,我们需要修改注册表。监听+注册表=success

11.修改Oracle监听,打开Oracle的net manager,主机名字是电脑主机的名称,端口是默认1521

d0fd7e6f33590d5116f54a6ed65241d4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值