Heim  >  Artikel  >  Backend-Entwicklung  >  Kommentare zur MySQL-Klasse durchgehend

Kommentare zur MySQL-Klasse durchgehend

WBOY
WBOYOriginal
2016-08-08 09:32:17954Durchsuche

Konfigurationsdateiabschnitt

<?php
/**
 * Created by wangsir
 * User: Administrator
 * Date: 14-12-22
 * Time: 上午9:29
 */

define(&#39;DB_MS&#39;,&#39;mysql&#39;);            //服务器
define(&#39;DB_USER&#39;,&#39;root&#39;);           //数据库用户名
define(&#39;DB_PASSWD&#39;,&#39;111&#39;);          //数据库密码
define(&#39;DB_NAME&#39;,&#39;bbs&#39;);            //使用数据库
define(&#39;DB_HOST&#39;,&#39;localhost&#39;);      //数据库服务器
define(&#39;DB_COD&#39;,&#39;utf8&#39;);            //数据库编码
define(&#39;DB_DSN&#39;,DB_MS.&#39;:host=&#39;.DB_HOST.&#39;;dbname=&#39;.DB_NAME);

Klasse
<?php
/**
 * Created by wangsir.
 * Date: 14-12-22
 * Time: 上午9:22
 * 本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。
 */


header("Content-Type:text/html;charset=utf-8");
//包含配置文件
require_once("config.ini.php");

class MySqli
{
    public $conn;            //保存数据库连接资源
    public $host;            //服务器
    public $username;        //数据库用户名
    public $password;        //数据密码
    public $dbname;          //数据库名
    public $cod;             //数据库编码

    public $dataTable;       //数据库表
    public $sql;             //sql语句
    public $where;           //条件
    public $limit;           //几条数据
    public $select;          //查询

    //数据库连接
    //这里采用读取配置文件的方式获取基本信息 也可以在构造函数传数组来解决同样的问题
    public function __construct($host=DB_HOST ,$username=DB_USER,$passwd=DB_PASSWD,$dbname=DB_NAME,$cod=DB_COD)
    {
        //获取数据库长连接,因为有长连接了所以就不在做单例模式
        $this->conn = new mysqli($host,$username,$passwd);
        $this->selectDb($dbname);
        $this->coding($cod);
    }

    //设置编码格式
    public function coding($cod)
    {
        mysql_query("SET CHARACTER SET ".$cod);
    }

    //读取某个库
    public function selectDb($dbname)
    {
        mysql_select_db($dbname,$this->conn);
    }

    //要查询什么字段 这个事查询的最后一步
    public function select($field="*")
    {
        $this->sql = "select ".$field." from ".$this->dataTable.$this->where.$this->limit;

    }

    //要使用哪个表
    public function table($tableName)
    {
        $this->dataTable = $tableName;
        return $this;
    }

    //执行操作
    public function query()
    {
        $res = mysql_query($this->sql);

        //是资源类型代表查询 返回结果数组
        if(is_resource($res))
        {
            //将返回二维数组
            while($row = mysql_fetch_assoc($res))
            {
                $arr[] = $row;
            }
            //返回一维数组
            foreach($arr as $key=>$value)
            {
                $ke = $value;
            }
            return $ke;
        }

    }

    //取得几个值 limit
    public function limit($limit)
    {
        $this->limit = ' limit '.$limit;
        return $this;
    }

    //where条件
    public function where($where)
    {
        $this->where = ' where '.$where;
        return $this;
    }

    //insert
    public function insert($insert)
    {
        //如果是索引数组
        if($this->is_assoc($insert))
        {
            //获取数组的key 也就是字段值
            $key = array_keys($insert);
            $value = array_values($insert);
            for($i=0,$j=0;$i<count($key),$j<count($value);$i++,$j++)
            {
                $column.=$key[$i].&#39;,&#39;;
                $val.=$value[$j].&#39;,&#39;;
            }
            $col = rtrim($column,&#39;,&#39;);
            $value = rtrim($val,&#39;,&#39;);
            $this->sql = "insert into ".$this->dataTable."($col) values($value)";

        }else{
            //如果不是索引数组 那么直接将数组转化为字符串
            $value = implode(',',$insert);
            $this->sql = "insert into ".$this->dataTable." values($value)";
        }
    }

    //修改
    public function update($update)
    {
        foreach($update as $key=>$value)
        {
            $data.=$key."=".$value.',';
        }
        $values = rtrim($data,',');
        $this->sql = "UPDATE ".$this->dataTable." SET $values ".$this->where;
    }

    //删除
    public function delete()
    {
        $this->sql = "DELETE FROM ".$this->dataTable.$this->where;
    }

    //判断是否为索引数组
    public function is_assoc($array) {
        if(is_array($array)) {
            $keys = array_keys($array);
            return $keys != array_keys($keys);
        }
        return false;
    }

}


//$b = array('CategoryID'=>9,'Name'=>11,'Description'=>22,'Priority'=>35);
//$b = array(4,5,6,7);
//$a = new MySqli();
//查询
//$sql = $a->table("guagua_category")->where('CategoryID=1')->limit(3)->select();
//$arr = $a->query();

//插入
//$sql = $a->table("guagua_category")->insert($b);
//$a->query();

//修改
//$sql = $a->table("guagua_category")->where("CategoryID=1")->update($b);
//$a->query();
//删除
//$sql = $a->table("guagua_category")->where("CategoryID=9")->delete();
//$a->query();

Das Obige stellt die MySQL-Klasse vor und kommentiert den gesamten Artikel, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn