thinkphp5.1学习过程七——数据库操做

<?php


namespace app\index\controller;
use think\Db;
/**
 * Class Demo5
 * @package app\index\controller
 * 查询构造器
 * 准备工做:app_debug=>'true';app_trace='true';
 * 系统学习数据据库的增删改查:CURD
 */
class Demo5
{
    //1.单条查询
    public function find()
    {
        /**
         * Db类数据库操做的入口类
         * 功能:静态调用think\db\query.php类中的查询方法实现基本操做
         * table():选择数据表
         * where():设置查询条件 表达式,数组
         * 1.单个条件 使用表达式
         * 2.对于多个条件使用数组
         * find()返回符合条件的第一条记录,没有的话返回NULL
         */
        $res=Db::table('blog')
            //->field('id,name,content')
            //->field(['id'=>'asdf','name'=>'qwer','content'=>'zxcv'])
            ->where('id','=',1)//若是是相等关太详细,=可省略
            ->find();
        dump(is_null($res)?'没有找到':$res);
    }
    //2.多条查询
    public function select()
    {
        //select()返回的是一个二维数组,没有数据返回是一个空数据
        $res=Db::table('blog')
            ->field('id,name,title')
            ->where([
                ['user_id','=','0'],
                ['category_id','>=',0]
            ])
            ->select();
        if(empty($res)){
            return '没有知足条件的记录';
        }else{
            foreach($res as $row){
                dump($row);
            }
        }
    }
    //单条插入
    public function insert()
    {
        //insert()成功返回新增的数量,失败返回false
        //准备一下要插入的数据
        $data=[
            'name'=>'js1',
            'title'=>'js学习',
            'content'=>'如今学习js框架',
            'user_id'=>0,
            'category_id'=>1,
            'recommend'=>1,
            'read_count'=>0,
            'create_time'=>time(),
            'update_time'=>time(),
            'publish_time'=>time(),
        ];
        //return Db::table('blog')->insert($data);
        //只有数据库类型为MYSQL的时候,才能够传入true
        //return Db::table('blog')->insert($data,true);
        //这样作能够提升对数据的安全处理,insert中不支持true
        //return Db::table('blog')->data($data)->insert();
        //插入的同时返回新增主键ID,insertGetId()同时执行两步,第一步插入,第二步返回主键主id
        return Db::table('blog')->insertGetId($data);
    }
    //4.添加多条
    public function insertAll()
    {
        $data=[
            ['name'=>'js2','title'=>'js2学习','content'=>'如今学习js框架','user_id'=>0,
                'category_id'=>1,'recommend'=>1,'read_count'=>0,'create_time'=>time(),
                'update_time'=>time(),'publish_time'=>time(),],
            ['name'=>'js3','title'=>'js3学习','content'=>'如今学习js框架','user_id'=>0,
                'category_id'=>1,'recommend'=>1,'read_count'=>0,'create_time'=>time(),
                'update_time'=>time(),'publish_time'=>time(),],
            ['name'=>'js4','title'=>'js4学习','content'=>'如今学习js框架','user_id'=>0,
                'category_id'=>1,'recommend'=>1,'read_count'=>0,'create_time'=>time(),
                'update_time'=>time(),'publish_time'=>time(),],
        ];
       // return Db::table('blog')->insertAll($data);
        return Db::table('blog')->data($data)->insertAll();
    }
    //更新操做
    public function update()
    {
        //update()必需要有更新条件
        //return Db::table('blog')
            //->where('id','=',13)
            //->update(['name'=>'html']);
        //若是更新条件是主键的话,能够直接把主键写到更新数组中
        return Db::table('blog')
            ->update(['name'=>'css','id'=>12]);
    }
    //删除操做
    public function delete()
    {
       // return Db::table('blog')
            //->delete(13);
        return Db::table('blog')
            ->where('id',12)
            ->delete();
    }
    //原生查询
    public function query()
    {
        $sql="SELECT 'name','title' FROM blog WHERE id IN(1,2,3)";
        dump(Db::query($sql));
    }
    //原生写操做:更新,删除,添加
    public function execute()
    {
//        return Db::execute("UPDATE blog SET name='css' WHERE id=11");
//        return Db::execute("INSERT blog SET name='asp'");
        return Db::execute("DELETE FROM blog WHERE id=11");
    }
}
相关文章
相关标签/搜索