【Oracle】PHP通过PDO访问oracle数据库

文章目录

虽然LAMP中PHP和MySQL是标准配对,但是公司的项目是MySQL和Oracle分别作为运行库和详单库的,所以PHP连接oracle数据库也是必须要实现的。本篇文章就介绍下如果通过PDO连接到oracle数据库。

同样先说明下我使用到的环境:

  • RedHat(CentOS)6.7
  • PHP5.6
  • Oracle11g

php5.6的搭建可以参照这里
Oracle在linux环境下的安装可以参考这里

当然,你也可以不安装整个oracle,而只安装instant client来实现;如果是instant client的oracle连接步骤参见本篇博文最后的致谢部分。

在开始下面的步骤前,请务必确保以上的3个环境都正确配置可用。

安装PDO_OCI

如果你是安装的php5.6.31版本,似乎pdo_oci模块已经自带了;但是稳妥起见,我们重新安装一遍。

下载并解压缩

123
$ wget https://pecl.php.net/get/PDO_OCI-1.0.tgz$ tar -xvf PDO_OCI-1.0.tgz$ cd PDO_OCI-1.0

修改配置文件

更新目录中的config.m4文件,使其适配Oracle11g

12345678
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then  PDO_OCI_VERSION=11.2

# 在第101行左右添加这几行:11.2)  PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)  ;;

编译

在当前目录下执行

1
$ phpize

phpize类似于gcc命令,主要是用来生成php的外挂模块。phpize是依赖于php-devel模块的,如果命令无法执行,请自行利用yum安装php-devel;
你可以通过下面的命令检查下是否已经安装:

1
$ rpm -qa | grep php

查看是否有php56w-devel-5.6.xxx,如果没有,请yum install php56w-devel来安装。

安装

phpize命令执行之后,会在目录下生成很多文件,其中包括configure等我们常见的linux下通过源码安装应用的标准文件,依次执行下面的命令:

12
$ ./configure大专栏  【Oracle】PHP通过PDO访问oracle数据库"line">$ make && make install

这里一般会遇到一个问题,在make的时候会提示在pdo_oci.c文件中:

pdo_oci.c:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘pdo_oci_functions’

解决办法是修改pdo_oci.c文件的第34行,把function_entry修改成zend_function_entry,保存后重新make就可以了。

创建ini文件

成功之后,会提示已经在/usr/lib64/php/modules目录下生成了pdo_oci.so模块,我们要做的就是告诉php,我们要引用这个模块。

/etc/php.d目录下新建一个ini文件:pdo_oci.ini,内容:

1
extension=pdo_oci.so

到这里,pdo_oci模块就安装完成了,我们可以通过php -m | grep oci来查看。

安装OCI8

接下来就是安装oci8模块。

下载并解压缩

依次在命令行中执行下面的命令:

123
$ wget https://pecl.php.net/get/oci8-2.0.8.tgz$ tar -xvf oci8-2.0.8.tgz$ cd oci8-2.0.8

编译和安装

步骤和上面pdo_oci是类似的:

123
$ phpize$ ./configure --with-oci8=shared$ make && make install

创建ini文件

同样的,我们在/etc/php.d目录下创建oci8.ini,内容:

1
extension=oci8.so

重启Apache

别忘记重启一下apache服务器来重新加载php的模块:

1
$ service httpd restart

我们可以通过在网站目录下创建一个test.php文件,文件中的内容是:

12
phpinfo();

然后我们到页面中去查看下打印出来的phpinfo信息,查看其中的pdo, pdo_ocioci8模块的相关信息。

参考&致谢

原文地址:https://www.cnblogs.com/liuzhongrong/p/12272028.html

时间: 2024-09-29 06:49:58

【Oracle】PHP通过PDO访问oracle数据库的相关文章

使用 ODP.NET 访问 Oracle(.net如何访问Oracle)详解

1,什么是ODF .NE,?就是Oracle 为 .NET (ODP.NET) 专门编写了 Oracle Data Provider,一个用于 Microsoft .NET 环境下的 Oracle 数据访问 API . 详细解说 http://www.oracle.com/technetwork/cn/testcontent/o23odp-084525-zhs.html 对于官方的代码,已不存在了! ODP.NET你不需要安装Oracle,不需要配置oracle.key文件,不需要配置TnsNa

使用 ODP.NET 访问 Oracle(.net如何访问Oracle)详解【转】

http://www.cnblogs.com/qinpengming/archive/2013/06/08/3127346.html 1,什么是ODF .NE,?就是Oracle 为 .NET (ODP.NET) 专门编写了 Oracle Data Provider,一个用于 Microsoft .NET 环境下的 Oracle 数据访问 API . 详细解说 http://www.oracle.com/technetwork/cn/testcontent/o23odp-084525-zhs.h

.net中使用ODP.net访问Oracle数据库(无客户端部署方法)

.net中使用ODP.net访问Oracle数据库(无客户端部署方法) 分类: c# database2012-01-05 15:34 6330人阅读 评论(1) 收藏 举报 oracle数据库.netcomponentsdll ODP.net是Oracle提供的数据库访问类库,其功能和效率上都有所保证,它还有一个非常方便特性:在客户端上,可以不用安装Oracle客户端,直接拷贝即可使用. 以下内容转载自:http://blog.ywxyn.com/index.php/archives/326

利用360免费wifi搭建局域网让他人访问Oracle数据库

步骤很简答有 第一部:安装完360免费,点击运行 第二部:关闭本地计算机的防火墙(找了半天问题所在后来才发现防火墙没关..关于防火墙的作用以后地看看 还有子网掩码) 第三部:就是让他人计算机通过PSQL连接你的数据库了(要是不想配置服务名的话把服务名改写为ip地址/数据库名) ip地址可以通过查看ipconfig得到 或者查看本地连接 利用360免费wifi搭建局域网让他人访问Oracle数据库,布布扣,bubuko.com

运行于64操作系统上的C#客户端通过WCF访问Oracle数据库不兼容问题

运行平台: Windows 7  64位操作系统 运行环境: IIS 7 编程语言:C# 数据库: 32位的Oracle 10g 运行原因:64位操作系统C#客户端程序通过WCF访问ORACLE数据库 结果产生异常:System.InvalidOperationException: 未在本地计算机上注册“MSDAORA”提供程序 客户端程序在本地运行能够正常访问Oracle数据库数据, 但通过WCF连接不上Oracle数据库, 一开始以为是"MSDAORA"驱动没装上,通过检查,MSD

客户端如何访问访问oracle 12c 64位的数据库

服务器A安装的oracle 12c 64位的数据库,机器B如何访问oracle数据库. 准备: 1.下载instantclient-basic-nt-12.1.0.2.0.zip,下载地址:http://pan.baidu.com/s/1c04lzSO 2.下载plsql,下载地址:http://pan.baidu.com/s/1bnHKDOj 安装步骤 1.安装orcle客户端 将下载的 instantclient-basic-nt-12.1.0.2.0.zip解压到机器B中非中文路径的目录下

.net(C#)访问Oracle数据库的几种免安装组件的对比

Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件.它们用来存取Oracle关系数据库系统.与BDE类似, ODAC 也是一种可供选择的处理数据的方法之一. ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API). OCI 通过一个动态运行库(ORA*.DLL)

C# 访问Oracle数据库

关于C#访问Oracle数据库的时候,必须安装Oracle客户端,而且必须安装和服务器相同的版本,否则会出现各种版本的不兼容问题,所以很多时候我们并不需要去安装完整的Oracle客户端,为了方便部署连接oracle的.net程序,oracle官方提供了一个简化版的client,即instant client.通过instant client和ODP.net中的Oracle.DataAccess.dll,我们就可以方便的部署.net应用程序或者站点. 1 下载和服务器对应的instant clie

JDBC访问Oracle数据库例子源代码,包括创建table,删除table,插入记录,删除记录,查询记录等

package com.cb; public class SMSInfo { public static String ITEMINDEX = "sms_index"; public static String ITEMTO = "sms_to"; public static String ITEMFROM = "sms_from"; public static String ITEMMSG = "sms_msg"; publ