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
123 lines
3.4 KiB
7 months ago
|
<?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);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|