⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func.php

📁 Oracle源码:Oracle 数据库管理与应用系统开发代码
💻 PHP
字号:
<?
function AlertExit($msg)
{
	echo $msg;
	exit;
}


/*
//【警告】:未经许可请勿随便修改 
//------------------------------------------------------------------------------------------ 
//------------------------------------------------------------------------------------------ 
// 
// 【文件名】: c_ora_db.inc 
// 【作 用】: Oracle公用函数类 
// 【作 者】: 天大天勤 
// 
// 【最后修改日期】: 2001/05/11[cxx] 
// 【变量定义规则】:‘C_’=字符型,‘I_’=整型,‘N_’=数字型,‘L_’=布尔型,‘A_’=数组型 
//------------------------------------------------------------------------------------------ 
※db_logon() 开启数据库连接 
※db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1   ) 通用select 
※db_change($C_sql,$A_bind="") 数据库改变的通用函数(insert,delete,update) 
※db_insert($C_sql,$A_bind="") insert,直接调用db_change() 
※db_delete($C_sql) delete,直接调用db_change() 
※db_update($C_sql,$A_bind="") update,直接调用db_change() 
※db_commit() 事务递交 
※db_rollback() 事务回退 
※db_logoff() 断开数据库连接 
*/
Class c_ora_db 
{ 
	//变量定义 
	var $C_user = "scott"; // 数据库用户名 
	var $C_passwd = "tiger"; //数据库口令 
	var $C_db = "";  //数据库名 
	var $I_linkID = 0; //连线句柄 
	var $I_stmtID = 0; //查询句柄 
	var $color =""; //全局颜色 
	/*
	函数名:db_logon() 
	作 用:开启数据库连接 
	参 数:无 
	返回值:连线句柄(整型) 
	备 注:无 
	*/
function db_logon() 
{ 
	$this->I_linkID = @OCIPLogon($this->C_user,$this->C_passwd,$this->C_db); 
	if ($this->I_linkID == 0){AlertExit('数据库链接失败,请与DBA联系!');} 
	return $this->I_linkID; 
} 
/*
函数名:db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1) 
作 用:select 
参 数:$C_sql sql语句 
$A_define 需绑定的字段。数组型 
$I_start 开始取记录 -1则取出查询的所有记录 
$I_end 结束取纪录 
返回值:二维数组($A_rs) 
备 注:通过数字0,1,2....可访问对应字段的值; 或通过查询字段名也可访问对应字段的 
如通过$A_rs[0][0]或$A_rs[0]['NAME']或$A_rs[0]['name']都可访问首条记录NAME字段 
  
$I_start,$I_end是配合分页使用的参数。 
*/
function db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1) 
{ 
	if (!$C_sql){AlertExit("参数不全!");}//检查参数连接检测 
	if ($this->I_linkID == 0){AlertExit('数据库链接失败,请与DBA联系!');} //格式检测 
	$this -> I_stmtID = OCIParse($this -> I_linkID,$C_sql); 
	if (!$this -> I_stmtID){AlertExit(' sql格式出错!请与程序员联系');} //如果没指定绑定的字段,则从SQL语句中去取 
	if($A_define=="") 
	{ 
		$A_Cur = explode("select",$C_sql); 
		$A_Cur = explode("from",$A_Cur[1]); 
		$A_define = explode(",",$A_Cur[0]); 
	} 
	//绑定数据库表字段 
	if(gettype($A_define) == "array")// 查询列是数组 
	{ 
		for($i=0;$i<count($A_define);$i++) 
		{ 
			$A_define_up[$i] = trim(strtoupper($A_define[$i]));// 大写并去除空格 
		} 
		for($i=0;$i<count($A_define_up);$i++) 
		{ 
			OCIDefineByName($this -> I_stmtID,"$A_define_up[$i]",&$$A_define[$i]);// 绑定 
		} 
	} 
	elseif(trim($A_define) <> "") //查询列只有一个 
	{ 
		$A_define_up = trim(strtoupper($A_define)); 
		OCIDefineByName($this -> I_stmtID,"$A_define_up",&$$A_define); 
	} 
	//执行绑定好的SQL语句 
	if(!OCIExecute($this -> I_stmtID)) 
	{ 
		echo "<font color=red><b>执行出错:</b></font>SQL Error:<font color=red>$C_sql< 
		/font><br>"; 
		return false; 
	} 
	$lower = 0;// 返回二维数组的第一维下标控制变量 
	$cnt = 0; //开始取数标识取记录 
	while (OCIFetchInto($this -> I_stmtID,&$cur,OCI_ASSOC+OCI_RETURN_LOBS)) 
	{ 
		//取查询出来的所有记录 
		if ($I_start == -1) 
		{ 
			if (gettype($A_define) == "array")// 查询列是数组 
			{ 
				for ($i=0;$i<count($A_define);$i++) 
				{ 
					if ($cur[$A_define_up[$i]] <> $$A_define[$i]) 
					{ 
						$$A_define[$i] = $cur[$A_define_up[$i]]; 
					} 
				$A_rs[$lower][$i] = $$A_define[$i]; //用数字访问 
				$A_rs[$lower][$A_define[$i]] = $$A_define[$i];// 用小些访问 
				$A_rs[$lower][$A_define_up[$i]] = $$A_define[$i]; //用大写访问 
				} 
			} 
			elseif (trim($A_define) <> "")// 查询列只有一个 
			{ 
				if ($cur[$A_define_up] <> $$A_define) 
				{ 
					$$A_define = $cur[$A_define_up]; 
				} 
				$A_rs[$lower][0] = $$A_define; //用数字访问 
				$A_rs[$lower][$A_define] = $$A_define;// 用小写访问 
				$A_rs[$lower][$A_define_up] = $$A_define;// 用大些访问 
			} 
			$lower++; //下标加一 
		} 
		//取出指定记录(配合分页使用) 
		if ($I_start <> -1) 
		{ 
			if ($cnt >= $I_start) 
			{ 
				$cnt++; 
				if ($I_end - $I_start <> 0) 
				{ 
					$I_end--; 
					if (gettype($A_define) == "array") 
					{ 
						for($i=0;$i<count($A_define_up);$i++) 
						{ 
							if ($cur[$A_define_up[$i]] <> $$A_define[$i]) 
							{ 
								$$A_define[$i] = $cur[$A_define_up[$i]]; 
							} 
							$A_rs[$lower][$i] = $$A_define[$i];// 用数字访问 
							$A_rs[$lower][$A_define[$i]] = $$A_define[$i];// 用小些访问 
							$A_rs[$lower][$A_define_up[$i]] = $$A_define[$i];// 用大写访问 
						} 
						}elseif(trim($A_define) <> "") 
						{ 
							if ($cur[$A_define_up] <> $$A_define) 
							{ 
								$$A_define = $cur[$A_define_up]; 
							} 
							$A_rs[$lower][0] = $$A_define; //用数字访问 
							$A_rs[$lower][$A_define] = $$A_define; //用小些访问 
							$A_rs[$lower][$A_define_up] = $$A_define;// 用大写访问 
						} 
						$lower++; 
					}else 
					{ 
						break; //如果$I_end-$I_start=0 表示取完记录并跳出while循环 
					} 
				}else 
				{ 
					$cnt++;// 如果$cnt<$I_start,$cnt++ 
				} 
			} 
	}// while的结束
	//释放句柄并返回查询数据(一个二维数组) 
	OCIFreestatement($this -> I_stmtID); 
	return $A_rs; 
} //function的结束 
/*
函数名:db_change($C_sql,$A_bind) 
作 用:db change 
参 数:$C_sql sql语句 
$A_bind 需绑定的字段。数组型 
返回值:布尔值 
备 注:insert,delete,update通用 
*/
function db_change($C_sql,$A_bind="") 
{ 
if (!$C_sql){AlertExit("参数不全!");}//检查参数连接检测 
if($this -> I_linkID==""){ AlertExit("我们的数据库正忙,请稍后再连接!");} //格式检测 
$this -> I_stmtID = OCIParse($this -> I_linkID,$C_sql); 
if (!$this -> I_stmtID){AlertExit(' sql格式出错!请与程序员联系');} //绑定 
if(gettype($A_bind) == "array") 
{ 
    for($i=0;$i<count($A_bind);$i++) 
    { 
        global $$A_bind[$i]; 
        $$A_bind[$i] = StripSlashes($$A_bind[$i]); //去掉反斜线字元 
        $$A_bind[$i] = str_replace("<?","< ?",$$A_bind[$i]);// 过滤掉PHP标示 
     } 
    for($i=0;$i<count($A_bind);$i++){ 
      OCIBindByName($this -> I_stmtID, ":$A_bind[$i]", &$$A_bind[$i], -1); //绑定
    } 
} 
elseif(trim($A_bind) <> "") //不是数组,是字符 
{ 
     global $$A_bind; 
     $$A_bind = StripSlashes($$A_bind); 
     $$A_bind = str_replace("<?","< ?",$$A_bind);// 过滤掉PHP标示 
     OCIBindByName($this -> I_stmtID, ":$arrBind", &$$A_bind, -1); 
} 
//执行并检测是否成功 
if(!OCIExecute($this -> I_stmtID,OCI_DEFAULT)) 
{ 
  echo "<font color=red><b>执行出错:</b></font>SQL Error:<font color=red>$C_sql</font><br>"; 
  return false; 
} 
//传回受影响的行数 
  global $I_changenum; 
  $I_changenum = OCIRowCount($this -> I_stmtID); 
//释放句柄,传回值 

  OCIFreeStatement($this -> I_stmtID); 
  return true; 
} 
/*
函数名:db_delete($C_sql) 
作 用:delete 
参 数:C_sql sql语句 
返回值:布尔值 
备 注:该函数只是为了使用直观,本质调用db_change() 
*/
function db_delete($C_sql) 
{ 
	return $this -> db_change($C_sql); 
} 
/*
函数名:db_insert($C_sql,A_bind) 
作 用:insert 
参 数:C_sql sql语句 
A_bind 绑定 
返回值:布尔值 
备 注:该函数只是为了使用直观,本质调用db_change() 
*/
function db_insert($C_sql,$A_bind="") 
{ 
	return $this -> db_change($C_sql,$A_bind); 
} 
/*
函数名:db_update($C_sql,A_bind) 
作 用:update 
参 数:C_sql sql语句 
A_bind 绑定 
返回值:布尔值 
备 注:该函数只是为了使用直观,本质调用db_change() 
*/
function db_update($C_sql,$A_bind="") 
{ 
	return $this -> db_change($C_sql,$A_bind); 
} 
/*
函数名:db_commit() 
作 用:事务递交 
参 数:无 
返回值:布尔值 
备 注:无 
*/
function db_commit() 
{ 
	return (OCICommit($this->I_linkID)); 
} 
/*
函数名:db_rollback() 
作 用:事务回退 
参 数:无 
返回值:布尔值 
备 注:无 
*/
function db_rollback() 
{ 
	return (OCIRollback($this->I_linkID)); 
} 
/*
函数名:db_logoff() 
作 用:断开数据库连接 

参 数:无 
返回值:布尔值 
备 注:无 
*/
function db_logoff() 
{ 
	return (OCILogoff($this->I_linkID)); 
}

function db_getUser() 
{ 
	return $this->C_user; 
}
function db_getPassword() 
{ 
	return $this->C_passwd; 
}
function db_getDB() 
{ 
	return $this->C_db; 
}

 
}
?> 
<?
$cla=new c_ora_db;
$cla->db_logon();
?> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -