1.在php.ini中打开extension=php_oci8扩展,重启服务。

2.将php/ext目录下的php_oci8.dll文件拷贝到system32目录下

3.安装 Oracle9i客户端精简版 后重启电脑

配置:

$config = array (

    'dbconfig' =>
array (
'db_host_name' => '192.168.2.197/orcl',
'db_user_name' => 'zbkf',
'db_password' => 'zbkf', ),
);

查询:

    //返回值
$arr_result = array();
$arr_result['result'] = 'false'; //true false 为黑名单
$arr_result['callerid'] = $callerid; //取数据库参数
$db_host_name=$config['dbconfig']['db_host_name']; //'localhost/ORCL''
$db_user_name=$config['dbconfig']['db_user_name'];//'asgr'
$db_pwd=$config['dbconfig']['db_password']; //'asgr' //连接Oracle
$conn = oci_connect($db_user_name,$db_pwd,$db_host_name);//oci_connect('asgr','asgr','localhost/ORCL');
if (!$conn) {
$e = oci_error();
//print htmlentities($e['message']);
//WriteLog("连接Oracle时出错,oci_connect(".$db_user_name.",".$db_pwd.",".$db_host_name.") ".htmlentities($e['message']));
$arr_result['result'] = 'false';
echo json_encode($arr_result); //默认为不是黑名单
return;
}
else {
//echo("连接成功!");
//$select = 'SELECT BL_TEL FROM CC_BLACKLIST'; // 查询语句
$select = "Select count(BL_Tel) from CC_BlackList where BL_Tel like '%" . $callerid . "%' and BL_SFQY='0' ";
//WriteLog($select);
$result_rows = oci_parse($conn, $select); // 配置SQL语句,执行SQL
$row_count = oci_execute($result_rows, OCI_DEFAULT); // 行数 OCI_DEFAULT表示不要自动commit
//echo($row_count);
if(!$row_count) { //没有行
$e = oci_error($result_rows);
//echo htmlentities($e['message']);
//WriteLog("查询时出错或没有行!,oci_connect(".$db_user_name.",".$db_pwd.",".$db_host_name.") ". $select." ".htmlentities($e['message']));
$arr_result['result'] = 'false';
echo json_encode($arr_result); //默认为不是黑名单
}
/*
//取每行每列值
while($row = oci_fetch_array($result_rows, OCI_RETURN_NULLS)) {
if($row[0]==$callerid){
$arr_result['result']='true';
echo json_encode($arr_result); //是黑名单
exit;
}
}
*/
$count=0;
while($row = oci_fetch_array($result_rows, OCI_RETURN_NULLS)) {
$count=$row[0];
break;
}
//WriteLog($count);
if($count>=1){
$arr_result['result']='true';
}
else {
$arr_result['result']='false';
}
echo json_encode($arr_result); //默认为不是黑名单
}

插入:

    //连接Oracle
$conn = oci_connect($db_user_name,$db_pwd,$db_host_name);//oci_connect('asgr','asgr','localhost/ORCL');
if (!$conn) {
$e = oci_error();
//print htmlentities($e['message']);
WriteLog("连接Oracle时出错,oci_connect(".$db_user_name.",".$db_pwd.",".$db_host_name.") ".htmlentities($e['message']));
$arr_result['result'] = 'false';
echo json_encode($arr_result); //默认为不是黑名单
return;
}
else {
//echo("连接成功!");
$sql = "insert into CC_LEAVEMESSAGE (ID,MESSAGEID,CALLINGNBR,LEAVEMESSAGETIME,FILENAME) values (sys_guid(),'" . $SessionId . "','" . $CallerId . "',sysdate,'" . $RecordFile . "')";
//WriteLog($sql);
$stid = oci_parse($conn, $sql); // 编译SQL语句,准备执行
$r = oci_execute($stid); // 执行SQL oci_free_statement($stid);
oci_close($con); //关闭连接
//WriteLog($r);
if(!$r) {
$e = oci_error($sql);
WriteLog("留言写入Oracle时出错,oci_connect(".$db_user_name.",".$db_pwd.",".$db_host_name.") " .$sql . ' ' .htmlentities($e['message']));
$arr_result['result']='false';
}
else{
$arr_result['result']='true';
}

php连接oracle数据库的方法的更多相关文章

  1. [C#.Net]C#连接Oracle数据库的方法

    首先介绍下开发环境:WIn10 64bit+Visual Studio 2015+Oracle10ClientWin32(只是客户端,如果安装整个数据库也是可以的) 目前了解C#中连接Oracle数据 ...

  2. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...

  3. LOADRUNNER连接ORACLE数据库的方法

    LOADRUNNER连接ORACLE数据库的方法     最近正在做一个测试数据库性能的项目,直接写出来的连接数据库并且进行数据库查询和插入的脚本在VUSER_INIT中(连接数据库)#include ...

  4. 用ASP.Net(C#)连接Oracle数据库的方法及实例

    今天看了一下asp.net连接oracle数据库的方法,得到了如下代码.这段代码打开了MyTable表,并把操作员的名字列出.字段类型是OracleString.读取的时候用的是字段编号,我不知道怎么 ...

  5. C#连接Oracle数据库的方法(System.Data.OracleClient、Oracle.DataAccess.Client也叫ODP.net、Oracle.ManagedDataAccess.dll)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...

  6. C#连接Oracle数据库的方法

    目前了解C#中连接Oracle数据库的方法有3种,分布是微软的System.Data.OracleClient,Oracle的Oracle.DataAccess.Client和Oracle的Oracl ...

  7. VS2010下连接Oracle数据库的方法

    在vs2010下使用OleDB连接Oracle数据库 ——此方法不需要配置数据源. 1. 在“服务器资源管理器”中,选择“数据库连接”,右击,选择“添加连接”. 2. 出现下面的界面,并按图中选择“用 ...

  8. 不安装Oracle客户端使用PLSQL连接Oracle数据库的方法

    1,下载PL\SQL http://dl8.cr173.com/soft1/PLSQLDeveloper10_ha.zip(这个是我下载的,带破解和汉化); 2,下载完后傻瓜式安装 ,这里说下,1是P ...

  9. java代码连接oracle数据库的方法

    oracle连接数据库的方式和mysql是大同小异的,主要的困难点在于oracle的数据库驱动包和依赖只有官方提供,如果你是用maven添加依赖的话,需要自己从官网下载jar包安装到你本地的maven ...

随机推荐

  1. poj 1936 All in All

    All in All Time Limit: 1000 MS Memory Limit: 30000 KB 64-bit integer IO format: %I64d , %I64u   Java ...

  2. 使用NHibernate(7)-- 一对一 && 一对多 && 多对多

    1, 一对一. 对于数据量比较大的时候,考虑查询的性能,肯能会把一个对象的属性分到两个表中存放:比如用户和用户资料,经常使用的一般是Id和用户名,用户资料(学校,籍贯等)是不经常被查询的,所以就会分成 ...

  3. C#设计模式(8)——桥接模式(Bridge Pattern)

    一.引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视 ...

  4. IIS问题解决:URL中制表符引起的Bad Request - Invalid URL

    昨天处理好了Google网站管理员中的500错误,今天处理了一些400处理,比如下面的以制表符(tab)结尾的URL: http://www.cnblogs.com/me-sa/archive/200 ...

  5. QlikView ETL - 分隔字符串的方法 SubField

    开篇介绍 今天在使用 QV 加载数据的时候会碰到列中的一些状态,信息是通过:或者 / 等符号分隔的,这样不利于做数据分析,因为字符串中的内容本身就是维度.上网搜了一下找到了解决的方法,记录一下. 比如 ...

  6. We are doomed, and RPC does not help

    第一种死法:Big ball of Mud 架构里最常用的反面案例是 big ball of mud.很大程度上可以说打格子,把复杂的系统拆解成小格子是架构师最重要的工作.这个小格子有很多种名字,比如 ...

  7. atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模

    )----列表查询建模 1. 配置条件字段@Conditional 1 2. 配置条件字段显示类型为range----@Conditional(displayType = displayType.ra ...

  8. Android 学习之显式激活与隐式激活Activity

    在res界面里面有两个布局文件activity_main和acivity_two

  9. chrome浏览器扩展的事件处理

    关于chrome扩展开发的栗子已经有很多了,问问度娘基本能满足你的欲望, 我想说的是扩展和页面间的数据传递问题. 我们知道写扩展有个必须的文件就是“manifest.json”, 这个里面定义了一个和 ...

  10. Android动画及图片的缩放和旋转

    Android动画有2种,一种是Tween Animation,另一种是Frame Animation,先说说Tween动画吧. Tween动画是对视图对象中的内容进行一系列简单的转换,比如位置的移动 ...