php 设计模式(数据库对象模式)

/**
 * 数据对象映射莫使,就是将对象和数据存储映射起来,对一个对象的操作就是对数据库的操作
 */
interface Database{
    public function connect($host, $name, $password, $db);
    public function query($sql);
    public function close();
}
class MYSQLI implements Database{
    protected $conn;
    public function connect($host, $name, $password, $db)
    {
        $this->conn = mysqli_connect($host, $name, $password, $db);
    }
    public function query($sql)
    {
        return mysqli_query($this->conn,$sql);
    }
    public function close()
    {
        mysqli_close($this->conn);
    }
}
class User{
    protected $data;
    protected $db;
    public function __construct($id){
        $this->db = new MYSQLI('127.0.0.1','admin','admin','oo');
        $res = $this->db->query('select * from user where id = '.$id);
        $this->data = $res->fetch_assoc();
    }
    protected function __set($key,$value){
        $this->data[$key] = $value;
    }
    protected function __get($key){
        $this->$key = $this->data[$key];
    }
    public function save(){
        $key = array_keys($this->data);
        $value = array_values($this->data);
        $sql = 'update user set () '.$key.' values '.$value.' where id = '.$this->id;
        if($this->db->query($sql)){
            echo 'ok';
        }
    }
    protected function __destruct(){
        $this->db->close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值