博主信息
博文 32
粉丝 1
评论 0
访问量 34742
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
小框架 增删改查
艾克的博客
原创
1149人浏览过
view文件下的index.php
<?php
/**
 * 入口文件:前端控制器
 */

//加载所有用到的类
require 'model/Db.php';
require 'model/Model.php';
require 'model/StudentModel.php';
//当前URL中有没有controller,无则默认Student
$controller = isset($_GET['c'])?$_GET['c']:'Student';
//给控制器加后缀
$controller .= 'Controller';
//加载控制器
require 'controller/'.$controller.'.php';
//获取一下操作
$action = isset($_GET['a'])?$_GET['a']:'getAll';

$stu = new $controller();
$stu->$action();

controller文件下的StudentController.php
<?php


class StudentController
{
    //获取所有数据
    public function getAll()
    {
        //实例化模型,获取数据
        $stu = new StudentModel();
        $data = $stu->all();
        print_r($data);
    }

    //获取单条数据
    public function getInfo($id=1)
    {
        $id = isset($_GET['id']) ? $_GET['id'] : $id;

        //实例化模型,获取数据
        $stu = new StudentModel();
        $data = $stu->get($id);
//        print_r($data);

    }
}

model下面的db.php 封装数据库

<?php
/**
 * 封装数据库操作
 */
class Db
{
    //配置参数
    private $dbConfig = [
        'dbType'=>'mysql',//数据库类型
        'host'=>'localhost',//服务器名称
        'charset'=>'utf-8',//字符编码
        'dbname'=>'demo',//数据库
        'userName'=>'root',//用户名
        'password'=>'root',//密码
        ];

    //新增主键ID
    public $insertIDd = null;
    //受影响的记录数
    public $num = 0;
    //单例模式,当前类实例
    private static $instance = null;

    //数据库连接对象
    private $pdo;

    //构造方法
    private function __construct($params=[])
    {
        //使用用户自定义的参数来更新默认的参数
        $this->dbConfig = array_merge($this->dbConfig,$params);
        //连接数据库
        $this->connect();
    }
    private function __clone()
    {
        // TODO: Implement __clone() method.
    }
    //获取当前类的唯一实例
    public static function getInstance($params=[])
    {
        if (!self::$instance instanceof self) {
            self::$instance = new self($params);
        }
        return self::$instance;
    }

    //连接数据库
    private function connect()
    {
        try{
            //配置DSN
            $dsn = $this->dbConfig['dbType']
             .':host='.$this->dbConfig['host']
                .';dbname='.$this->dbConfig['dbname']
                .';charset='.$this->dbConfig['charset'];
            $userName = $this->dbConfig['userName'];
            $password = $this->dbConfig['password'];
            //创建PDO对象,连接数据库
            $this->pdo = new PDO($dsn,$userName,$password);
        }catch (PDOException $e) {
            print $e->getMessage();
            die();
        }
    }

    //写操作:新增,更新,删除,exrc()
    public function exec($sql)
    {
        $num = $this->pdo->exec($sql);
        if ($num >0) {
            if (null !==$this->pdo->lastInsertId()) {//新增操作
                $this->insertIDd = $this->pdo->lastInsertId();
            }
            $this->num = $num;//更新,删除
        }else{
            print_r($this->pdo->errorInfo());
        }
    }

    //获取单条记录
    public function get($sql)
    {
        $pdoStmt = $this->pdo->query($sql);
        if (isset($pdoStmt) && $pdoStmt->rowCount()>0) {
            return $pdoStmt->fetch(PDO::FETCH_ASSOC);
        }else {
            print_r($this->pdo->errInfo());
        }
    }

    //获取所有记录
    public function all($sql)
    {
        $pdoStmt = $this->pdo->query($sql);
        if (isset($pdoStmt) && $pdoStmt->rowCount()==1) {
            return $pdoStmt->fetchAll(PDO::FETCH_ASSOC);
        }else {
            print_r($this->pdo->errInfo());
        }
    }
}

model文件夹下面的model.php
<?php
/**
 * 公共模型类
 */

class Model
{
    protected $db = null;//数据库连接对象
    public $data = null;//当前用户请求的数据
    public function __construct()
    {
        $this -> init();//初始化就是连接数据库
    }
    private function init()
    {
        $dbConfig = [
            'userName'=>'root',
            'password'=>'root',
            'dbname'=>'demo'
        ];
        //用自定义的连接对象
        $this->db = Db::getInstance($dbConfig);
    }

    //获取所有数据
    public function all()
    {
        $sql = "SELECT id,name FROM demo";
        return $this->data = $this->db->all($sql);
    }

    //获取单条数据
    public function get($id=1)
    {
        $sql = "SELECT id,name FROM demo WHERE id={$id}";
        return $this->data = $this->db->get($sql);
    }
}


model下面的test_db.php测试增删改查
<?php
//测试db类增删改查
include 'db.php';
$db = Db::getInstance();
echo 'pre';

//获取id=5的记录
$sql = 'SELECT * FROM demo WHERE id=5';
print_r($db->get($sql));

//获取多条记录
$sql = 'SELECT * FROM demo';
print_r($db->all($sql));

//新增操作
$sql = "INSERT demo SET name='peter',email='aa@qq.com',";
$db->exec($sql);
echo '新增主键'.$db->insertIDd,',插入了'.$db->num.'条';

//更新操作
$sql = "UPDATE demo SET name='peterZHU' id=8";
$db->exec($sql);
echo '更新了'.$db->num.'条';


//删除操作
$sql = 'DELETE FROM demo WHERE id=8';
$db->exec($sql);
echo '删除了'.$db->num.'条';
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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

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