我创建的数据库的增删改实例

原创2019-06-14 14:51:5449
摘要:<?php/** * Created by PhpStorm. * User: cloud * Date: 2019/4/12 * Time: 10:03 */namespace app\index\controller;use think\Db;/* * 查询构造器 * 准备工作:app_debug='true';app_trace='true' 应用的开关

<?php
/**
* Created by PhpStorm.
* User: cloud
* Date: 2019/4/12
* Time: 10:03
*/

namespace app\index\controller;

use think\Db;

/*
* 查询构造器
* 准备工作:app_debug='true';app_trace='true' 应用的开关要打开  这两个开关在  \config\app.php中
* 系统的学习数据库的 增删改查  CURD
* */

class Demo5
{
//1、单条查询
   public function find()
   {
//        DB类是数据库操作入口类,功能是 静态调用think\db\Query.php类中的查询方法实现基本操作
//        table 选择数据表,必须给一个完整的表名
//        field('id','name','email') 只查询符合条件中的 id,name,email 三个内容即可,用于设置返回的字段数量或别名
//        where('id','=',4) 查询表达式,设置查询条件|对于单个条件使用表达式;对于多个条件使用数组
//        find() 方法查询,是返回符合条件的第一条记录,若无记录符合,则返回null
//        结果是一个一维数组
       $res = Db::table('mt_student')
//            -> field('id','name','email')
           ->where('id', '=', 2)
           ->find();

//        is_null($res) ? '没有找到' : '$res' 判断$res是否为空,为空,显示没有找到,非空,显示$res;
       dump(is_null($res) ? '没有找到' : '$res');


//        生成的sql语句
//        SELECT * FROM 'mt_student' WHERE 'id' = 4 LIMIT 1
//        SELECT 'id','name','email' FROM 'mt_student' WHERE 'id' = 4 LIMIT 1
//        SELECT 'id' AS '编号','name' AS '姓名','email' AS '邮箱' FROM 'mt_student' WHERE 'id' = 4 LIMIT 1


       /*
        * $res = Db::table('mt_student')
           -> field(['id'=>'编号','name'=>'姓名','email'=>'邮箱'])
           -> where('id',4) //如果是相等关系,等号是可以省略的
           -> find(); //如果是根据主键查询的话,是可以省略 where(),直接 ->find(4)来代替-> where('id',4) //如果是相等关系,等号是可以省略的
           -> find()
       */

   }











   /*
    * 2、多条查询
    * */

   public function select()
   {
//        select()返回的是一个二维数组,没有数据返回一个空数据
       $res = Db::table('mt_student')
           -> field ('id,name,course,grade')
           -> where ([
               ['course','=','php'],
               ['grade','>=',80]
           ]) -> select();

       if(empty($res)){
           return '没有满足条件的记录';
       }else{
           foreach ($res as $row){
               dump($row);
           }
       }

   }









//    3、单条插入

   public function insert()
   {
//        insert()成功返回插入的数量,即新增的数量;失败返回false
//        准备一下要插入的数据,放在一个数组data中
       $data = [

           'name' => '洪七公3',
           'email' => '777@email.com',
           'course' => 'java',
           'grade' => '86'
       ];

//        return Db::table('mt_student')-> insert($data); //普通插入一条数据
//        return Db::table('mt_student')-> insert($data,true); //可以替换更新一条数据内容
//        return Db::table('mt_student') -> data($data) -> insert(); //data()方法可以做一些最基本的过滤


//        插入的同时返回新增主键ID
//        insertGetId()执行两步操作, 第一步插入数据,第二步返回新生的主键ID
       return Db::table('mt_student')-> insertGetId($data);



   }







//    4、多条插入
   public function insertAll()
   {
       $data = [
           ['name'=>'peter','email'=>'php@php.cn'],
           ['name'=>'jack','email'=>'j@php.cn'],
           ['name'=>'black','email'=>'b@php.cn'],
       ];

       return Db::table('mt_student')-> insertAll($data);

   }








//    5、更新操作:一定有更新条件;如果成功,返回更新成功,并显示更新x条;如果失败,显示false; 不支持 data()方法;
       public function update()
       {
//            return Db::table('mt_student')
//                -> where('id',4)
//                -> update(['name'=>'西门庆']);

//            如果更新条件是主键ID,可以简写
           return Db::table('mt_student')
               -> update(['id'=>'5','name'=>'小金莲']);
       }







//        6、删除操作
   public function delete()
   {
//        return Db::table('mt_student')
//            -> delete(11);

       return Db::table('mt_student')
           -> where('id',12)
           -> delete();
   }
















//    原生查询:
   public function query()
   {
       $sql="SELECT `name`,`email` FROM `mt_student` WHERE id IN (4,5,6)";
       dump(Db::query($sql));
   }



//    原生写操作:更新、删除,添加
   public function execute()
   {
//        return Db::execute("UPDATE `mt_student` SET `name`='武松' WHERE `id`=13 ");
//        return Db::execute("INSERT `mt_student` SET `name`='张飞' ");
       return Db::execute("DELETE FROM `mt_student` WHERE `name`='张飞' ");
   }






}

批改老师:天蓬老师批改时间:2019-06-14 15:07:27
老师总结:TP5.1的软删除, 本质上更新操作, 框架提供的方式比较繁琐, 建议在开发中, 通过自行定义来解决比较高效....

发布手记

热门词条