登录  /  注册
博主信息
博文 48
粉丝 0
评论 0
访问量 38963
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
1010-个人博客之【数据库访问类封装】
3期-Shawn的博客
原创
777人浏览过

1010-个人博客之【数据库访问类封装】

Db.php文件



<?php


// 数据库访问类

class Db{

  function __construct(){

    $this->pdo = new PDO('mysql:host=127.0.0.1;dbname=myblog','root','root');

      }


//指定查询表名方法

  public function table($table){//$table接收外部传来的表名

    $this->table = $table;

    $this->field = '*';

    $this->where = [];

    $this->order = '';

    $this->limit = 0;

    $this->insert =[];


    return $this;

    }

//查询方法

  //1.指定查询字段方法

  public function field($field){//$table接收外部传来的表名

    $this->field = $field;

    return $this;

    }


  //2.指定查询条件方法

  public function where($where){//$table接收外部传来的表名

    $this->where = $where;

    return $this;

    }


  //3.指定查询条件方法

  public function order($order){//$table接收外部传来的表名

    $this->order = $order;

    return $this;

    }

  //4.指定查询数量方法

  public function limit($limit){//$table接收外部传来的表名

    $this->limit = $limit;

    return $this;

    }


  //5.查询一条记录

  public function item(){

    //$sql = "SELECT {$this->field} FROM `{$this->table}` WHERE `id`=12 and `cid`=2 LIMIT 1";

    $sql = $this->_build_sql('select');

    $sql .= " LIMIT 1";

    $stmt = $this->pdo->prepare($sql);

    $stmt->execute();

    $item = $stmt->fetchAll(PDO::FETCH_ASSOC);

    return $item ? $item[0] : false;

  }


  //6.查询不固定多条记录

  public function lists(){

    $sql = $this->_build_sql('select');exit($sql);

    $stmt = $this->pdo->prepare($sql);

    $stmt->execute();

    return  $stmt->fetchAll(PDO::FETCH_ASSOC);

  }


  //“增加(添加)、删除、改变(更新)”数据 方法


    //1.增加数据方法

    public function insert($data){

      //$sql = "INSERT INTO {$this->table}(`cid`,`title`)VALUES(1,'insert测试')";

      $sql = $this->_build_sql('insert',$data);

      $stmt = $this->pdo->prepare($sql);

      $stmt->execute();

      return  $this->pdo->lastInsertId();

    }




  //构造sql语句

  private function _build_sql($type,$data = NULL){

    if($type == 'select'){

      $sql = "SELECT {$this->field} FROM `{$this->table}`";


      if($this->where){

        $sql .= $this->_build_where_sql();

      }


      $this->order && $sql .= " order by {$this->order}";

      $this->limit && $sql .= " LIMIT {$this->limit}";

    }


    if($type == 'insert'){

      $sql = $this->_build_insert_sql($data);

    }


    return $sql;

  }


  //构造where_sql

  private function _build_where_sql(){

    $sql = '';

    $where = '';

    foreach ($this->where as $key => $value) {

      if(is_string($value)){

      $where .= " and `{$key}`='{$value}'";

    }else{

      $where .= " and `{$key}`={$value}";

    }

    }

    $where = ltrim($where," and");//去掉多余的“空格+and”

    $sql .= " WHERE ".$where;//添加上缺的“空格+and+空格”

    }




  //构造insert_sql

  private function _build_insert_sql($data){

    $sql = "INSERT INTO {$this->table}";

    $fields = $values = [];


    foreach ($data as $key => $value) {

      $fields[] = '`'.$key.'`';

      $values[] = is_string($value) ? "'".$value."'":$value ;

    }

    $sql .= '('.implode(',',$fields).')VALUES('.implode(',',$values).')';


  }


}




批改状态:合格

老师批语:代码高亮!!!
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学