php5.6 连接 oracle,经验:php5.6连接oracle数据库(windows版)

今天尝试了一下连接oracle数据库,在配置过程中出现很多错误,从“未知的驱动”、“找不到监听器”到“目前不知道服务的连接描述符请求”,通过使用各种技能(百度、谷歌和stackoverflow)最终成功连接上了oracle,这其中的安装配置过程比sqlserver要复杂,现在记录安装与除错过程备查,也给需要连接oracle的网友提供一些思路。

第一步,需要打开php的oci扩展

在5.6版的ext文件夹中,只有php_oci8_12c.dll文件,所以我们需要修改php.ini文件中的内容:

;注释掉下面两句Use with Oracle 10gR2 Instant Client

;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client

;添加这一句

第二步,下载客户端工具instantclient

官网的instantclient下载链接不知为什么提示错误的url,我是从CSDN网友提供的资源中下载的,请自行搜索。

需注意的是其中有64位和32位版,请下载相应的版本,然后解压到任意一个文件夹,例如d:\instantclient,解压完毕后拷贝文件夹下的所有文件到系统文件夹中,32位对应c:\windows\system32, 64位对应c:\windows\sysWOW64

第三步,添加环境变量

首先在你解压后的文件夹中,新建network/admin文件夹备用,然后添加两个环境变量:

ORACLE_HOME d:\instanctclient

TNS_ADMIN d:\instanctclient\network\admin

第四步,创建tnsnames.ora文件

在d:\instanctclient\network\admin文件夹中,新建tnsnames.ora文件,然后添加下面的内容:

ORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 主机名或IP名或IP1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = 服务名务名

其中的服务名很重要,如果写错就会出现TNS:listener does not currently know of service requested in connect descriptor错误,应该是你的oracle服务器的服务名,具体的意义我也不知道,我是从服务器的oracle所在文件夹下的product\10.2.0\db_1\network\ADMIN\tnsnames.ora文件中得到的。

第五步,测试是否可以正确的连接oracle。

经过以上配置后,为了确保能正确加载一些文件和配置,请重启电脑。

通过PHP的PDO来测试

// ORCL就是我们在tnsnames.ora中的名字

$pdo = new PDO("oci:dbname=ORCL", "user", "password");

下面是我在yii2.0中的配置

'db' => [

'class' => 'yii\db\Connection',

'dsn' => 'oci:dbname=ORCL',

'username' => 'user',

'password' => 'pwd',

'charset' => 'utf8',

],

以上就是我配置oracle中的过程,希望能帮助到大家,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值