<?php

/**

* 由于公司的需要,使用php+oracle开发项目,oracle因为有专门人员开发设计,我们只需远程调用

*于是乎遇到了蛋疼的问题就是开启oracle扩展的问题,虽然你在php.ini文件中打开了extension=php_oci8.dll

*单身在phpinfo中仍然看不到oracle扩展,这样oracle的操作方法就不能用,

*于是就要去oracle官方网上下载一个文件包 instantclient-basic-nt-11.2.0.3.0.zip,

*解压到任意地方,然后将D:\instantclient这个地址配置到环境变量里面这样*oracle的扩展就会开启,自然方法都可以使用了,就像用mysql一样了

*当然数据库连接类还是需要的于是我就写了一个php连接oracle的类如下

*/

class oracle{

public $user;  //用户

public $pass;  //密码

public $dbname;//数据库

public function __construct($user='lms',$pass='lms',$dbname='192.168.2.77ot'){

$this->user=$user;

$this->pass=$pass;

$this->dbname=$dbname;

}

//连接数据库

function conn(){

$link = oci_connect($this->user,$this->pass,$this->dbname);

return $link;

}

public function oracle_fetch_all($sql,$status='1'){

$link = $this->conn();

if(!$status){

echo $sql."<br/>";

}

$stmt = oci_parse($link,$sql);

$r = oci_execute($stmt);

if (!$r ){

$this->oracle_error($stmt);

}

while(!!$row = oci_fetch_array($stmt,OCI_BOTH)){

$data[] = $row;

}

return $data;

}

public function oracle_fetch_row($sql,$status='1'){

$link = $this->conn();

if(!$status){

echo $sql."<br/>";

}

$stid = oci_parse($link, $sql);

$r = oci_execute($stid);

if (!$r){

$this->oracle_error($stid);

}

$data = oci_fetch_assoc($stid);

return $data;

}

public function oracle_query($sql){

$link = $this->conn();

$stmt = oci_parse($link,$sql);

$r = oci_execute($stmt,OCI_DEFAULT);

if (!$r ){

$this->oracle_error($stid);

}

return $r;

}

public function oracle_commit(){

$link = $this->conn();

$committed = oci_commit($link);

return $committed;

}

public function oracle_error($stid){

if (!empty($stid)){

$e = oci_error($stid);

trigger_error(htmlentities($e['message']), E_USER_ERROR);

}

}

public function oracle_rollback(){

$link = $this->conn();

if (!empty($link)){

$r = oci_rollback($link);

}

return $r;

}

}

$oracle = new oracle();

$sql = "SELECT * from T_LMS_USERS where USERID='2'";

$data = $oracle->oracle_fetch_row($sql,0);

print_r ($data);

?>

php连接oracle oracle开启扩展的更多相关文章

  1. Oracle记录-开启与关闭数据库

    1.配置tnsnames.ora/listener.ora #cd /usr/oracle/oracle/product/11.2.0/db_1/network/admin ---切换到安装目录 #v ...

  2. 通过MSSQL连接服务器连接至Oracle数据库

    前言 有很多时候,我们需要MSSQL与Oracle进行跨库查询或数据交互.本篇随笔将阐述如何通过MSSQL的连接服务器连接至Oracle数据库,并且读取数据的示例. 具体步骤 首先需要到Oracle的 ...

  3. PLSQL Developer连接远程Oracle方法(非安装客户端)

    Oracle比较麻烦,通常需要安装oracle的客户端才能实现.通过instantclient可以比较简单的连接远程的Oracle. 1.新建目录D:\Oracle_Cleint用于存放相关文件,新建 ...

  4. 不安装Oracle客户端使用PL/SQL连接服务器端Oracle

    从10G开始,Oracle 提供了一个较为轻量级的客户包,叫做Instant Client Package. 将它安装好后,就不用再安装庞大的Oracle客户端,可以直接通过使用PL/SQL连接服务器 ...

  5. 大并发连接的oracle在Linux下内存不足的问题的分析

    大并发连接的oracle在Linux下内存不足的问题的分析 2010-01-28 20:06:21 分类: Oracle 最近一台装有Rhel5.3的40G内存的机器上有一个oracle数据库,数据库 ...

  6. PL/SQL Developer连接远程Oracle数据库

    转自:http://zhengdu.net/archives/152 一.首先看远程端oracle服务是否启动 如果没有启动,请启动oracle服务 ps:创建或者删除oracle监听 二.远程端or ...

  7. ODAC连接远程Oracle数据库时,数据源名称orcl改为gscloud

    今天用ODAC连接远程Oracle数据库时,怎么也连接不上, 更改配置文件的tnsname.ora,使之都一样,并完全配置正确还是出现错误,连接不上. 最后请大神一世,原来是数据源名称的问题. 把数据 ...

  8. 使用jdbc连接上oracle的两种方法

    1. 使用thin连接 优点:thin驱动都是纯Java代码,并且使用TCP/IP技术通过java的Socket连接上Oracle数据库,所以thin驱动是与平台无关的,无需安装Oracle客户端,只 ...

  9. sql plus 和 pl/sql无法连接远程oracle数据库

    前言:安装完oracle客户端后,可能会出现sql plus 和 pl/sql无法连接远程oracle数据库的情况,可能是以下原因: 针对sql plus连接不上: 1 可能原因:之前安装过oracl ...

  10. 强制删除正在连接的Oracle用户,以删除SDE用户为例

    . 有时候想强制删除一个已经连接的Oracle用户,不能直接删除,可以用Kill会话信息. 比如今天想删除一个被连接的SDE用户,可以用以下方法删除一个“正在被连接”的用户. 1.查看所有用户的会话信 ...

随机推荐

  1. Generate Maximum revenue by selling K tickets from N windows

    Objective: Given ‘N’ windows where each window contains certain number of tickets at each window. Pr ...

  2. 微信小程序 — 自定义picker选择器弹窗内容+textarea穿透bug

    微信小程序中定义好的几种picker选择器,不管是日期选择器还是地区选择器,或是其他的都只有定死的样式和内容. 但是大多数开发程序的情况下还是需要自己写样式的,或是内容的. 例如: 代码如下: < ...

  3. node.js基础---增删

    官方API文档:http://nodejs.cn/api/fs.html#fs_fs_rmdir_path_callback   在调用node方法中同步有Sync异步没有 //文件系统 //1.引入 ...

  4. 前端手势控制图片插件书写二(transform矩阵的原理)

    上次解释了如何使用代码识别双指和单指操作及放大和旋转拖动操作.这次解释下css3的transform原理 一.transform矩阵原理 transform: matrix(a,b,c,d,e,f) ...

  5. Docker 安装 PHP

    安装 PHP 镜像 查找Docker Hub上的php镜像 docker search php 这里我们拉取官方的镜像,标签为5.6-fpm docker pull php:5.6-fpm Nginx ...

  6. js中遍历对象的属性和值的方法

    鉴于循环目标是个对象,length是为undefined,用map等对数组的循环方法不行,对象就用此下方法 for(var key in _this.lists.medicines){ medicin ...

  7. GrapeCity Documents (服务端文档API组件) V3.0 正式发布

    近日,葡萄城GrapeCity Documents(服务端文档API组件)V3.0 正式发布! 该版本针对 Excel 文档.PDF 文档和 Word 文档的 API 全面更新,加入了用于生成 Exc ...

  8. Eureka【启用https】

    上一篇主要说的是开启http basic认证,从安全角度来讲,基于base64编码,容易被抓包后破解,在公网中很不安全,本文详谈如何在eureka server和eureka client中开启htt ...

  9. P2279 消防局的设立 (树形DP or 贪心)

    (点击此处查看原题) 树形DP写法 看到这个题的要求,很容易相到这是一个树形DP的问题,但是dp数组应该如何设计并转移才是关键 dp[i][0]代表当前结点可以向上覆盖2层,自身一定被覆盖dp[i][ ...

  10. 【Python基础】08_Python中的列表

    1.列表的定义 List(列表)是Python中使用的 最频繁 的数据类型,其他语言通常叫数组 专门用于存储 一串信息 列表用 [] 定义,数据 之间用 , 分割 列表的 索引(位置) 从 0 开始 ...