PHP数据库链式操作类-PHP数据库操作类

不要认为自己比别人做得好,即便你很出色。常问自己,谁对我有恩还没加倍报答。杜绝事必躬亲,学会抓大放小。

Model类内容

<?php
//引入数据库连接信息文件
require_once 'database.php';

class Model
{
    protected $field = '*';
    protected $order = "";
    protected $limit = '';
   //构造函数
    public function __construct()
    {

        $this->Db = new mysqli(HOST,USER,PWD,DBNAME);
        $this->Db->set_charset('utf8');
        if(mysqli_connect_errno()) {
            die(mysqli_connect_error());
        }
    }
    //查询表
    public function table($table) {
        $this->where = array();
        $this->table = $table;
        return $this;
    }
    //查询条件
    public function where($where) {
        $this->where = $where;
        return $this;
    }
    //查询条数
    public function limit($limit) {
        $this->limit = $limit;
        return $this;
    }
    //排序
    public function order($order) {
        $this->order = $order;
        return $this;
    }
    //查询字段
    public function field($field) {
        $this->field = $field;
        return $this;
    }
    //数据内容
    public function data($data) {
        $this->data = $data;
        return $this;
    }
    //构造sql查询语句
    private function _select_sql() {
        $where = '';
        if(is_array($this->where)) {
            foreach ($this->where as $k => $v) {
                $v = is_string($v) ? "'".$v."." : $v;
                $where .="{$k} = {$v} and ";
            }
        }else {
            $where = $this->where;
        }
        $limit = $this->limit == '' ? '' : "limit {$this->limit}";
        $order = $this->order == '' ? '' : "order by {$this->order}";
        $where = rtrim($where,'and ');
        $where = $where =='' ? '': "where {$where}";
        $sql = "select {$this->field} from {$this->table} {$where} {$order} {$limit}";
        return $sql;
    }

    //获取单条数据
    public function items() {
        $sql = $this->_select_sql();
        $query = $this->db->query($sql);
        $res = $query->fetch_all(MYSQLI_ASSOC);
        if($query) {
            return isset($res[0]) ? $res[0] : false;
        }else {
            return $this->Db->error;
        }

    }
    //获取多条数据
    public function lists() {
        $sql = $this->_select_sql();
        $query = $this->Db->query($sql);
        $res = $query->fetch_all(MYSQLI_ASSOC);
        if($query) {
            return $res;
        }else {
            return $this->Db->error;
        }
    }
    //构造更新sql语句
    private  function _update_sql() {
        $where = '';
        if(is_array($this->where)) {
            foreach ($this->where as $k => $v) {
                $v = is_string($v) ? "'".$v."." : $v;
                $where .="{$k} = {$v} and ";
            }
        }else {
            $where = $this->where;
        }
        $data = '';
        if(is_array($this->data)) {
            foreach ($this->data as $k => $v) {
                $v = is_string($v) ? "'".$v."'" : $v;
                $data .= " {$k} = {$v},";
            }
        }else{
            $data = $this->data;
        }
        $data = rtrim($data,',');
        $where = rtrim($where,'and ');
        $where = $where =='' ? '': "where {$where}";
        $sql = "update {$this->table} set {$data} {$where}";
        return $sql;
    }

    //数据更新
    public function update() {
        $sql = $this->_update_sql();
        $query = $this->Db->query($sql);
        if($query) {
            return true;
        }else {
            return $this->Db->error;
        }
    }

    //构造删除sql语句
    private function _delete_sql() {
        $where = '';
        if(is_array($this->where)) {
            foreach ($this->where as $k => $v) {
                $v = is_string($v) ? "'".$v."'" : $v;
                $where .="{$k} = {$v} and ";
            }
        }else {
            $where = $this->where;
        }
        $where = rtrim($where,'and ');
        $where = $where =='' ? '': "where {$where}";
        $sql = "delete from {$this->table} {$where}";
        return $sql;
    }
    //删除数据
    public function delete() {
        $sql = $this->_delete_sql();
        $query = $this->Db->query($sql);
        if($query) {
            return true;

        }else {
            return $this->Db->error;
        }
    }
    //构造新增sql语句
    private function _insert_sql() {
        $name = '';
        $info = '';
        if(is_array($this->data)) {
            foreach ($this->data as $k => $v) {
                $v = is_string($v) ? "'".$v."'" : $v;
                $name .= "{$k},";
                $info .= "{$v},";
            }
        }
        $name = rtrim($name,',');
        $info = rtrim($info,',');
        $sql = "insert into {$this->table} ({$name}) values ({$info})";
        return $sql;

    }

    //新增数据
    public function insert() {
        $sql = $this->_insert_sql();
        $query = $this->Db->query($sql);
        if($query) {
            return true;
        }else {
            return $this->Db->error;
        }
    }
    //析构函数
    public function __destruct()
    {
        $this->Db->close();
    }
}

连接信息文件内容

<?php
define('HOST','127.0.0.1');//数据库地址
define('USER','root');//数据库用户名
define('PWD','root');//数据库密码
define('DBNAME','demo');//数据库名

调用方法示例

<?php
require_once 'Model.php';
$db = new Model();
$data = [
    'username'=>'demo',
    'password'=>'123456789789456123'
];
//更新示例
$update = $db->table('root_admin')->data($data)->where('id=2')->update();
//新增示例
$insert = $db->table('root_admin')->data($data)->insert();
//删除示例
$detete = $db->table('root_admin')->where('id=1')->delete();
//查询示例    单条数据查询
$result = $db->table('root_admin')->where('id=1')->items();
//查询示例   多条数据查询
$res = $db->table('root_admin')->where('id>2')->lists();
//查询示例  按字段查询
$res = $db->table('root_admin')->field('name,age')->where('id>2')->lists();
//查询示例  排序
$res = $db->table('root_admin')->where(''id>2')->order('id DESC')->lists();

本文PHP数据库链式操作类-PHP数据库操作类到此结束。贪婪是最真实的贫穷,满足是最真实的财富。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
PHP性能优化案例分享

PHP实现短信验证码的发送次数限制

PHP中的异常处理机制深入讲解

PHP常见七种算法合集代码实例

PHP微信扫描二维码关注公众号后自动登录第三方网站