基于mysqli的数据库操作类

<?php
/*****************************
数据库访问类(MySQLi版)
******************************/
class MySQLiDb{
    //数据库链接本身
    private $link;
    //最后一次执行的sql语句
    private $sql;
    //初始化类
    public function __construct($hostname,$username,$password,$database){
        $this->link=new mysqli($hostname,$username,$password,$database);
        if(mysqli_connect_error()){
            $errorInfo=‘Error:Could not make a database link (‘.
                mysqli_connect_errno().‘)‘.mysqli_connect_error();
            throw new ErrorException($errorInfo, 1);
        }
        $this->link->set_charset("utf8");
    }

    //获取插入后生成的ID
    private function getLastId(){
        return $this->link->insert_id;
    }

    //获取影响的行数
    private function countAffected(){
        return $this->link->affected_rows;
    }

    //将数组格式的条件组装成字符串
    private function rewhere($where){
        $str=‘‘;
        foreach($where as $key=>$value){
            if(!empty($str)){
                $str.=‘ and ‘;
            }
            $rekey=$this->link->escape_string($key);
            $revalue=$this->link->escape_string($value);
            $str.=is_numeric($revalue)?"`$rekey`=$revalue":"`$rekey`=‘$revalue‘";
        }
        return $str;
    }



    public function create($table,$model){
        $fields=‘‘;
        $values=‘‘;
        foreach ($model as $key => $value) {
            if($fields){
                $fields.=‘,‘;
            }
            $fields.="`$key`";
            if($values){
                $values.=‘,‘;
            }
            $values.=is_numeric($value)?$value:"‘".$this->link->escape_string($value)."‘";
        }
        $this->sql="INSERT INTO `$table`($fields) VALUES($values)";
        echo $this->sql;
        $this->link->query($this->sql);
        return $this->link->insert_id;
    }

    public function modify($table,$model,$where){
        $assins=‘‘;
        $where=$this->rewhere($where);
        foreach ($model as $key => $value) {
            $rkey=$this->link->escape_string($key);
            $rvalue=$this->link->escape_string($value);
            if(!is_numeric($rvalue)){
                $rvalue="‘".$rvalue."‘";
            }
            $assins.=$assins?",`$rkey`=$rvalue":"`$rkey`=$rvalue";
        }
        $this->sql="UPDATE `$table` SET $assins WHERE $where";
        echo $this->sql;
        $this->link->query($this->sql);
    }

    public function remove($table,$where){
        $where=$this->rewhere($where);
        $this->sql="DELETE FROM `$table` WHERE $where";
        echo $this->sql;
        $this->link->query($this->sql);
    }

    public function search($table,$where){
        $where=$this->rewhere($where);
        $this->sql="SELECT * FROM `$table` WHERE $where";
        $this->link->query($this->sql);
        $result=$this->link->query($this->sql);
        return $result -> fetch_assoc();
    }

    public function unique($table,$where){
        $where=$this->rewhere($where);
        $this->sql="SELECT * FROM `$table` WHERE $where LIMIT 1";
        $result=$this->link->query($this->sql);
        return $result -> fetch_object();
    }
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。