设为首页 加入收藏

TOP

php 数据库类(一)
2017-10-10 12:01:59 】 浏览:7237
Tags:php 数据库
<?php
/**
 * 对Yii2数据封装
 * @author nike@youfumama.com
 * @date 2017-03-08
 * 抽象类不能被实例化
 * 
    eg1: select
    use common\models as b_model;

    $users_model = b_model\FactoryModel::users();
    $users_model->setPk(1);
    $users_model->setFields('id,name,age,sex');
    $result = $users_model->getInfoByPk();
    =================================================
    eg2: update|insert
    use common\models as b_model;
    use common\models\entity as b_entity;

    $users_entity = new b_entity\Users();
    $users_entity->name = '尼克';
    $users_entity->age = 25;
    $users_model = b_model\FactoryModel::users();
    $users_model->setPk(1);
    $result = $users_model->updateByPk($users_entity);
 */
namespace common\models;

use yii;
use yii\db\ActiveRecord;

/**
 * Base model
 * @author nike@youfumama.com
 * @date 2017-03-08
 */
abstract class BaseModel extends ActiveRecord
{
    protected static $_db = null;
    private $sql;
    private $PrimaryKeyField; //主键字段名
    private $pk; //主键
    private $field_values;//存放数据库字段数组
    protected $table;
    protected $field = '*';
    protected $where;
    protected $orderby;
    protected $limit;
    protected $groupby;
    
    /**
     * set db
     * @param type $db
     */
    protected function _setDb($db = null)
    {
        if(null == $db)
            $db = Yii::$app->db;
        self::$_db = $db;
    }
    /**
     * get db
     * @return type
     */
    protected function _getDb()
    {
        if(empty(self::$_db))
            $this->_setDb ();
        return self::$_db;
    }
    /**
     * 设置SQL语句
     */
    private function setSQL($sql)
    {
        $this->sql = $sql;
    }
    /**
     * 获取SQL语句
     */
    function getSQL()
    {
        return $this->sql;
    }
    /**
     * 设置field_values
     */
    private function setFieldValues($field_values)
    {
        if(!is_object($field_values))
            throw new Exception ('entity must be Object', 500);
        $this->field_values = $field_values;
    }
    /**
     * 获取field_values
     */
    private function getFieldValues()
    {
        return $this->cleanArray((array)$this->field_values);
    }
    /**
     * 清除values of SQL injections
     * @param type $array
     * @return array
     */
    private function cleanArray($array)
    {
        $array = array_map('trim', $array);
        $array = array_map('stripslashes', $array);
        $array = array_map('mysql_real_escape_string', $array);
        return $array;
    }
    /**
     * 设置主键字段名
     */
    protected function setPrimaryKeyField($PrimaryKeyField)
    {
        $this->PrimaryKeyField = $PrimaryKeyField;
    }
    /**
     * 获取主键字段名
     */
    protected function getPrimaryKeyField()
    {
        return $this->PrimaryKeyField;
    }
    /**
     * 设置主键值
     * @param int
     */
    public function setPk($pk)
    {
        $this->pk = $pk;
    }
    /**
     * 获取主键值
     * @return int
     */
    public function getPk()
    {
        return $this->pk;
    }
    /**
     * 设置表名
     */
    protected function setTable($table)
    {
        $this->table = $table;
    }
    /**
     * 获取表名
     */
    protected function getTable()
    {
        return $this->table;
    }
    /**
     * 设置Fields
     */
    function setFields($fields)
    {
        $this->field = $fields;
    }
    /**
     * 获取Fields
     */
    function getFields()
    {
        return $this->field;
    }
    /**
     * 设置where条件
     */
    function setWhere($where)
    {
        $this->where = $where;
    }
    /**
     * 获取where条件
     */
    function getWhere()
    {
        return $this->where;
    }
    /**
     * 设置Group
     */
    function setGroupBy($groupby)
    {
        $this->groupby = $groupby;
    }
    /**
     * 获取Group
     */
    function getGroupBy()
    {
        return $this->groupby;
    }
    /**
     * 设置Order
     */
    function setOrderBy($orderby)
    {
        $this->orderby = $orderby;
    }
    /**
     * 设置Order
     */
    function getOrderBy()
    {
        return $this->orderby;
    }
    /**
     * 设置条数
     */
    fun
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇单例模式 俗称单例3步曲+1曲 下一篇PHP函数之自定义函数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目