博主信息
博文 17
粉丝 0
评论 1
访问量 19320
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
链式数据库查询和添加-2019年8月1日
无名氏_连的博客
原创
1160人浏览过

首先,本次作业中链式数据查询方法是仿老师的案例编写的,其次添加数据库的方法是根据查询方法的基础上加入自己的想法编写出来的。

代码的运行流程用图片标注解释,直接上代码和图片吧:

实例

<?php

namespace quest;

class Quest
{
    //数据库连接对象
    public $pdo = null;
    //连接的数据表
    public $table;
    //查询字段名
    public $feild='*';
    //查询条件
    public $where;
    //查询的条数
    public $limit;
    public $data = [];

    //创建构造方法
    public function __construct($pdo){
        $this->pdo = $pdo;
    }

    //创建查询表方法并对$table赋值
    public function table($table){
        $this->table = $table;
        return $this;
    }
    //创建添加字段方法并对$feild赋值 默认值为 *
    public function feild($feild='*'){
        $this->feild = empty($feild)?'*':$feild;
        return $this;
    }
    //创建添加条件方法并对$where赋值
    public function where($where=''){
        $this->where = empty($where)?$where:' WHERE '.$where;
        return $this;
    }
    //创建限制条数方法并对$limit赋值
    public function limit($limit=''){
        $this->limit = empty($limit)?$limit:' LIMIT '.$limit;
        return $this;
    }

    //创建查询数据结果方法
    public function select(){
        $sql = ' SELECT '
            .$this->feild //引入字段名
            .' FROM '
            .$this->table//引入表名
            .$this->where//引入条件
            .$this->limit;//引入条数
        //预处理对象
        $stmt = $this->pdo->prepare($sql);
        //执行sql语句
        $stmt->execute();
        //返回查询全部数据
        return $stmt->fetchAll(\PDO::FETCH_ASSOC);
    }

    //创建添加单条数据结果方法
    public function insert($data=[]){
        $this->data = $data;
		//对以下sql语句进行拼接
         $str = '';
        foreach ($this->data as $k=>$v){

                $str .= '`'.$k.'`' .' = '."'".$v."'".' ,';
        }
        $sql = ' INSERT INTO '
            .$this->table//引入表名
            .' SET '
            .substr($str,0,strlen($str)-1);//对sql语句后面逗号进行截取,删除逗号
        //预处理对象
        $stmt = $this->pdo->prepare($sql);
        //执行sql语句
        $stmt->execute();
        //返回查询全部数据
        return $stmt->rowCount()?'成功添加'.$stmt->rowCount().'条数据':'添加数据失败';
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
namespace _0801;
require 'Quest.php';
use quest\Quest;

class Db
{
    //数据库连接对象初始化
    public static $pdo =null;
    //设置服务器、库名
    const DSN = 'mysql:host=127.0.0.1;dbname=kuqiwang';
    //设置数据库登录账号
    const USER = 'root';
    //设置数据库登录密码
    const PWD = 'root';

    //连接数据库的静态方法
    public static function connect(){
        self::$pdo = new \PDO(self::DSN,self::USER,self::PWD);
    }

    //创建静态方法重载
    public static function __callStatic($name,$arguments){
        self::connect();
        $quest = new Quest(self::$pdo);
        return call_user_func_array([$quest,$name],$arguments);

    }

}

//查询数据实例化
$arr = Db::table('cates')
    ->where()
    ->limit(5)
    ->select();

foreach ($arr as $staff) {
    print_r($staff); echo '<br>';
}

//添加数据实例化
$data = ['name'=>'ty','alias'=>'体育'];
echo Db::table('cates')->insert($data);

运行实例 »

点击 "运行实例" 按钮查看在线实例

0801-1.png

0801-2.png0801-3.png

批改状态:合格

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

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

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