Files
xinhu/include/Model.php
2022-08-14 16:47:40 +08:00

191 lines
4.5 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
*****************************************************************
* 联系QQ 290802026 *
* 版 本: V2.0 *
* 开发者:雨中磐石工作室 *
* 邮 箱: admin@rockoa.com *
* 网 址: http://www.rockoa.com/ *
* 说 明: 数据模型 *
* 备 注: 未经允许不得商业出售,代码欢迎参考纠正 *
*****************************************************************
*/
abstract class Model{
public $perfix = PREFIX;
public $rock;
public $db;
public $table;
public $adminname;
public $adminid;
public $tempxinxi = array();
public function __construct($table='')
{
$this->rock = $GLOBALS['rock'];
$this->db = $GLOBALS['db'];
$this->adminid = $this->rock->adminid;
$this->adminname = $this->rock->adminname;
$this->settable($table);
$this->initModel();
}
public function settable($table, $qzbo=true)
{
$this->table = ''.$this->perfix.''.$table.'';
if(!$qzbo)$this->table = $table;
}
public function initModel(){}
public function getmou($fields, $where, $order='')
{
return $this->db->getmou($this->table, $fields, $where, $order);
}
public function getone($where, $fields='*', $order='')
{
return $this->db->getone($this->table, $where, $fields, $order);
}
public function getrows($where, $fields='*', $order='', $limit='')
{
return $this->db->getrows($this->table, $where, $fields, $order, $limit);
}
public function getall($where, $fields='*', $order='', $limit='')
{
$sql = $this->db->getsql(array(
'fields' => $fields,
'table' => $this->table,
'where' => $where,
'order' => $order,
'limit' => $limit
));
return $this->db->getall($sql);
}
public function getarr($where, $fields='*', $kfied='id')
{
return $this->db->getarr($this->table, $where, $fields, $kfied);
}
public function rows($where)
{
return $this->db->rows($this->table, $where);
}
public function query($where, $fields='*', $order='', $limit='')
{
$sql = $this->db->getsql(array(
'fields' => $fields,
'table' => $this->table,
'where' => $where,
'order' => $order,
'limit' => $limit
));
return $this->db->query($sql);
}
public function record($arr, $where='')
{
return $this->db->record($this->table, $arr, $where);
}
public function update($arr,$where)
{
return $this->record($arr, $where);
}
public function insert($arr)
{
$nid = 0;
if($this->record($arr, ''))$nid = $this->db->insert_id();
return $nid;
}
public function insertAll($arr)
{
$name = $values = '';
foreach($arr as $k=>$rs){
$cont = '';
foreach($rs as $i=>$v){
if($k==0)$name.=',`'.$i.'`';
$cont.=",".$this->db->toaddval($v)."";
}
$cont = substr($cont, 1);
if($k>0)$values.=',';
$values.='('.$cont.')';
}
return $this->db->insert($this->table, substr($name, 1),'values '.$values.'', true);
}
public function getwhere($where='')
{
return $this->db->getwhere($where);
}
public function getfields()
{
return $this->db->getallfields($this->table);
}
public function delete($where)
{
return $this->db->delete($this->table, $where);
}
public function getlimit($where, $page=1, $fields='*', $order='', $limit=20, $table='')
{
if($order != '')$order = 'order by '.$order.'';
$where = $this->getwhere($where);
if($table == '')$table = $this->table;
$sql = "select $fields from $table where $where $order ";
$count = $this->db->rows($table, $where);
if($page <= 0)$page=1;
$sql .= "limit ".($page-1)*$limit.",$limit";
$rows = $this->db->getall($sql);
$maxpage = ceil($count/$limit);
return array(
'rows' => $rows,
'count' => $count,
'maxpage' => $maxpage,
'page' => $page,
'limit' => $limit,
'prevpage' => $page-1,
'nextpage' => $page+1,
'url' => ''
);
}
public function isempt($str)
{
return $this->rock->isempt($str);
}
public function contain($str, $s1)
{
return $this->rock->contain($str, $s1);
}
public function getLastSql()
{
return $this->db->getLastSql();
}
public function count($where='1=1')
{
return $this->rows($where);
}
public function getXinxi($id,$fields='*')
{
if(isset($this->tempxinxi[$id]))return $this->tempxinxi[$id];
$rs = $this->getone($id,$fields);
$this->tempxinxi[$id] = $rs;
return $rs;
}
}
class sModel extends Model{}