鼠笼管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.4 KiB

<?php
class Orm_Oci
{
private $db = null;
public function __construct(){
if($this->db == NULL){
header("Content-type: text/html; charset=utf-8");
// $this->db = oci_connect('bqe','bqe','123.57.47.91:1521/bqedb','AL32UTF8');
$this->db = oci_new_connect('csyt', 'csyt', '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.190.217)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)', 'ZHS16GBK');
}
if(!$this->db){
$e = oci_error();
Tool_Fnc::ajaxMsg(htmlentities($e['message'], ENT_QUOTES));
}else{
return $this->db;
}
}
public function getRow($tSql){
$stid = oci_parse($this->db, $tSql);
$r = oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
return $row;
}
public function getAll($tSql){
$stid = oci_parse($this->db, $tSql);
$r = oci_execute($stid);
$tDatas = array();
while($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)){
$tDatas[] = $row;
}
return $tDatas;
}
public function exec($tSql){
$stid = oci_parse($this->db, $tSql);
return oci_execute($stid);
}
/**
* 添加记录
* return lastid
*/
public function insert($pData, $pReplace = false){
if($this->_filter($pData)){
$tField = '`'.join('`,`', array_keys($pData)).'`';
$tVal = join("','", $pData);
//echo $tSql = ($pReplace? "REPLACE": "INSERT") . " INTO `$this->table`($tField) VALUES ('$tVal')";exit();
#Tool_Fnc::writefile('/home/zhangyueru/xx',$tSql);
if($this->exec(($pReplace? "REPLACE": "INSERT") . " INTO $this->table($tField) VALUES ('$tVal')")){
return $this->db->lastInsertId();
}
}
return 0;
}
/**
* 更新记录
**/
public function update($pData, $pTableName, $pId){
# 过滤
if(!$this->_filter($pData)) return false;
# 条件
$tOpt = array();
// if(isset($pData[$this->pk])){
// $tOpt = array('where' => "$this->pk='{$pData[$this->pk]}'");
// }
// $tOpt = $this->_options($tOpt);
# 更新
if($pData && !empty($tOpt['where'])){
foreach($pData as $k1 => $v1){
$tSet[] = "`$k1`='$v1'";
if($k1 == 'CREATED'){
$tSet = "`$k1`='to_date($v1, 'yyyy-mm-dd hh24:mi:ss')'";
}
}
$tSql = "UPDATE `" . $pTableName . "` SET " . join(',', $tSet) . " WHERE ID = " . $pId;
return $this->exec("UPDATE " . $pTableName . " SET " . join(',', $tSet) . " WHERE ID = " . $pId);
}
return false;
}
/**
* 过滤危险数据
* @param array $pData
*/
public function _filter(&$pData){
foreach($pData as $k1 => &$v1){
if(empty($this->field[$k1])){
unset($pData[$k1]);
continue;
}
if(is_array($v1)){
$v1 = $v1[0];
}else{
$v1 = strtr($v1, array('\\' => '', "'" => "\'"));
}
}
return $pData? true: false;
}
public function __destruct(){
if(!empty($this->db)){
oci_close($this->db);
}
}
}