码迷,mamicode.com
首页 > 数据库 > 详细

基于mysqli的数据库操作类

时间:2015-01-26 11:28:00      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

<?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();
    }
}

 

基于mysqli的数据库操作类

标签:

原文地址:http://www.cnblogs.com/codetown/p/4249720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!