引用 :https://www.cnblogs.com/myBlogInWork/p/8657125.html

由于工作需要,要用到php+oracle写个项目,故而有了以下内容:

本来以为php有默认的oracle模块,封装好的函数拿过来用就好了,后发现并不像那么简单,整个过程经过就不说了,费了很大功夫,百度了好多,发现相关的经验也比较少,决定写下来了。

整个过程如下:

  1. 查看本地的php版本信息(cmd :php -v   或者 echo  phpinfo())

2.下载对应版本的oracle instant client

http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html

X86  对应32 位版本

划重点了:需要下载这两个压缩包 ,安装到统一路径下,请看好是“basicLIte”sqlplus版本 ,并且版本号统一

具体安装过程 参见:https://www.cnblogs.com/ivictor/p/3898702.html

  可见,如果仅仅是用SQL Developer连接数据库服务器端,或用SQL*Plus对数据库进行操作,相对于标准的客户端,

  Oracle Instant Client都是一个更好的选择,它大大简化了客户端的安装过程,占用空间极少,却包括必备的OCI、OCCI接口和ODBC、JDBC driver。

  下载链接:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

  因为我们后台数据库的版本是11.2.0.1 32位,同时我们需要在windows下面安装客户端,故下载

  【php】

  instantclient-basic-win32-11.2.0.1.0.zip (51,458,190 bytes)

  instantclient-sqlplus-win32-11.2.0.1.0.zip (758,913 bytes)

下面来看看如何安装。

一、 将instantclient-basic和instantclient-sqlplus两个安装包放在同一个目录下,解压

在这里,我们放在E:\Oracle下,解压到当前文件夹,最后会自动生成一个新的文件夹instantclient_11_2,两个安装包的文件都会放到该文件夹下,即                          E:\Oracle\instantclient_11_2。

二、 修改系统变量

1> 将E:\Oracle\instantclient_11_2添加到系统变量PATH中

2> 新增系统变量

NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252   -->> 服务器端字符集

TNS_ADMIN=E:\Oracle\instantclient_11_2       -->> 指定tnsnames.ora所在位置

注意:如果安装网上方法系统变量依然没有生效的话,需重启电脑让修改的系统变量生效。

三、 在E:\Oracle\instantclient_11_2 下新建tnsnames.ora配置文件,内容如下:

orcl =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.being.com)
    )
  )

四、 用SQL*Plus登陆测试。

    C:\WINDOWS\system32>sqlplus scott/tiger@orcl

SQL*Plus: Release 11.2.0.1.0 Production on Fri Aug 8 10:17:53 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>

测试ok!

至此,Oracle Instant Client和SQl*Plus安装完成。

3.下载oci扩展包

http://pecl.php.net/package/oci8  根据需要选择

注意这里的三个框对应第一步中的三项信息

下载后解压,将相关.dll文件复制到php环境扩展文件夹中

xampp环境为:../xampp/php/ext

4.安装好验证之后,修改PHP配置文件php.ini 文件,增加扩展

extension=php_oci8.dll

extension=php_oci8_12c.dll(具体扩展版本号根据自己第三步中安装的oci版本匹配)

5.全部进行完之后可重复进行第一部验证,发现phpinfo中多了oci模块,否则请重新仔细检查前几步是否完全正确

 

需要注意的是,部署sqlserver不用重启电脑,部署oracle需要重启电脑。

phpStudy配置sql、oracle---博主摘录的更多相关文章

  1. hibernate4中oracle,sqlserver,mysql数据库的sql方言配置(SQL Dialects)

    hibernate4中oracle,mysql,sqlserver数据库的sql方言配置(SQL Dialects) 数据库类型 Hibernate sql方言 DB2 org.hibernate.d ...

  2. 安装Hue后的一些功能的问题解决干货总结(博主推荐)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  3. CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz)(博主推荐)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  4. ORACLE 博客文章目录(2015-05-27更新)

    从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...

  5. Java工程师面试题,整理自网络与博主各种笔试面试,持续更新

    1.面向对象的特征有哪些方面? 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口. 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应.简单的说就是用同 ...

  6. MyBatis 配置sql语句输出

    版权声明:本文为博主原创文章,未经博主允许不得转载. 此处使用log4j,加入jar包,然后在src路径下加入:log4j.properties文件 填入以下配置就可以打印了 log4j.rootLo ...

  7. 成功的背后!(给所有IT人)----转载:来自CSDN第一名博主

    转载:来自CSDN第一名博主:http://blog.csdn.net/phphot/article/details/2187505 放在这里激励你我! 正文: 成功的背后,有着许多不为人知的故事,而 ...

  8. Hibernate框架--配置,映射,主键

    SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate,    基于持久层的框架(数据访问层使用)! Spring,   创建对象处理对象的依赖关系以及框架整合! Da ...

  9. ORACLE 博客文章目录(2015

    从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...

随机推荐

  1. EXCL单元格公式——组装SQL用

    ="'"&F3&"'"

  2. mysql分组排序加序号

    参照https://www.cnblogs.com/CharlieLau/p/6737243.html 一.需求 新加一个Sort 字段,初始值为1,按照parentID分组添加sort值. 根据原数 ...

  3. Linux入门培训教程 linux网络编程socket介绍

    一.概念介绍 网络程序分为服务端程序和客户端程序.服务端即提供服务的一方,客户端为请求服务的一方.但实际情况是有些程序的客户端.服务器端角色不是这么明显,即互为Linux培训 客户端和服务端. 我们编 ...

  4. DNS预读取 dns-prefetch 提升页面载入速度

    DNS Prefetch,即DNS预获取,是前端优化的一部分.一般来说,在前端优化中与 DNS 有关的有两点: 一个是减少DNS的请求次数,另一个就是进行DNS预获取 . DNS 作为互联网的基础协议 ...

  5. MySQL_约束

    MySQL中约束的作用是对表中的数据进行限定,保证数据的正确性,完整性,有效性. 分类:(1)主键约束 primary key(2)非空约束 not NULL (3)唯一约束 unique (4)外键 ...

  6. MySQL_DDL操作

    简单的来说DLL就是对数据库的C(Create)R(Retrieve)U(Update)D(Delete) 1.数据库的创建 (1)创建:create database 数据库名:当数据库已经存在则会 ...

  7. Spring 4.2.2以上版本和swagger集成方案和踩过的坑

    因为公司使用的spring版本太高,在集成swagger的时候会存在一些问题,而网上的很多实例大多都是版本比较低的,为了是朋友们少才坑,我这边将集成的过程记录一下: 1. 引入spring.swagg ...

  8. C语言第四次实验报告

    第四次实验报告 一·实验项目名称: 多球反弹 二·实验项目功能描述: (1)实现多个小球 (2)实现多个小球碰壁会反弹 (3)实现小球之间碰撞反弹 三· 项目模块结构介绍 #define High 4 ...

  9. 一、基础篇--1.1Java基础-final, finally, finalize 的区别

    final, finally, finalize 首先,这三个关键字没什么关联,只是放在一起比较像,用法用处完全不同. final: final关键字可以用来修饰类.方法.变量(成员变量和局部变量), ...

  10. leetcode-easy-array-283 move zeros

    mycode  77.24% class Solution(object): def moveZeroes(self, nums): """ :type nums: Li ...