|
|
@@ -92,6 +92,32 @@ abstract class Table {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ //此项目每个表都有code字段,大部分表有date字段,放在基类里面统一处理
|
|
|
+ public function getInfoByCodeAndDate($code, $date){
|
|
|
+
|
|
|
+ //查询语句必须用sql_check_input检查参数
|
|
|
+ $code = trim($code);
|
|
|
+ $code = $this->pdo->sql_check_input(array('string', $code));
|
|
|
+
|
|
|
+ //查询语句必须用sql_check_input检查参数
|
|
|
+ $date = trim($date);
|
|
|
+ $date = $this->pdo->sql_check_input(array('number', $date));
|
|
|
+
|
|
|
+ $sql = "select * from ". $this->table_fullname ." where ".$this->table_name."_code = $code and ".$this->table_name."_date = $date limit 1";
|
|
|
+
|
|
|
+ $rs = $this->pdo->sqlQuery($sql);
|
|
|
+ $r = array();
|
|
|
+ if($rs){
|
|
|
+ foreach($rs as $key => $val){
|
|
|
+ $r[$key] = $this->dataToAttr($val);
|
|
|
+ }
|
|
|
+ return $r[0];
|
|
|
+ }else{
|
|
|
+ return $r;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//获取列表(分页)
|
|
|
//$count、$page和$pagesize都为0时,返回全部结果(适用于无需分页的情况)
|
|
|
//
|
|
|
@@ -182,6 +208,23 @@ abstract class Table {
|
|
|
return $id;
|
|
|
}
|
|
|
|
|
|
+ //(code,date)为唯一标识,不存在则add,否则update
|
|
|
+ public function addOrUpdateByCodeDate($attrs)
|
|
|
+ {
|
|
|
+ if (empty($attrs) || empty($attrs['code']) || empty($attrs['date'])) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ $rs = $this->getInfoByCodeAndDate($attrs['code'], $attrs['date']);
|
|
|
+ if (empty($rs)) {
|
|
|
+ $id = $this->add($attrs);
|
|
|
+ } else {
|
|
|
+ $id = $rs['id'];
|
|
|
+ $this->update($id, $attrs);
|
|
|
+ }
|
|
|
+ return $id;
|
|
|
+ }
|
|
|
+
|
|
|
//--------------------------------------------------
|
|
|
//------------依赖于字段设置的常见方法,可以重载----
|
|
|
//--------------------------------------------------
|