Blogger Information
Blog 49
fans 0
comment 1
visits 46668
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
常用的thinkphp数据库操作方法 ---2018年5月24日
失去过去的博客
Original
1625 people have browsed it

常用的thinkphp数据库操作方法 

<?php
/**
 * Created by PhpStorm.
 * User: luodingquan
 * Date: 2018/5/24
 * Time: 上午9:06
 */
//申明命名空间
namespace app\index\controller;
//引入数据库操作类
use think\Db;
//创建Demo类 文件名称和类名称必须一致,第一个字母大写(规范)
class Demo
{
    /** tp中常用的几种数据库操作方法
               table()方法指定要查询的数据表名称
     *          name()方法指定要查询的表明可以可以省略数据表前缀
     *          find()查询单条数据 查询到所有符合条件的数据的第一个数据
     *          where()指定条件 参数是 (字段,表达式,条件)
     *          field()指定字段 该方式传入的方式可以是字符串 数组
     *          order() 指定条件排序方式 默认是从小到大 ASC 从大到小是 DESC 参数('field','desc')
     *          limit() 指定返回的数据条数 参数传入的是 int
     *          select() 最终方法 返回的是查询的多条数据 不建议传入参数
     *          insert()插入单条数据 参数是字段组成的一维数组;
     *          getLastInsID()返回最后插入的数据id 仅仅适用于单条查询
     *          insertGetId() 执行插入数据并返回最后受影响的id
     *          inserAll()插入多条数据 参数是字段组成的二维数组
     *          update()危险操作 ,不允许无条件更新数据通常和where()配合使用
     *          date()该方法用于储存数据 参数是数组
     *          raw()引用原始字段的值
     *          delete()危险操作 不允许无条件删除
     */

    //单条查询
    public function find()
    {

//        1、单条数据查询 find()方法 最终方法方法体内不建议传入参数
                //返回的参数是一个数组
//            $res = Db::table('staff')
//                    ->find(18);

//            2、通常在查询记录的时候会指定条件where()方法 传入的参数可以是字符串 如果表达式是=(等号)可以省略
//                $res = Db::table('staff')
//                    ->where('staff_id','=',16)
//                    ->find();
//                3、指定字段查询 field()方法 传入的参数可以是数组或者字符串
                    $res = Db::table('staff')
                        ->field(['name','sex','age'])
                        //where()方法中的表达式默认是 = (等号)
                        ->where('staff_id','=',16)
                        //返回查询所有结果的第一条数据
                        ->find();
        dump($res) ;
    }
    //多条查询
    public function select()
    {
        $res = Db::table('staff')
            ->field(['name','age','sex'])
            ->where('salary','>=',5000)
            //常用的排序方式 order by 默认asc
            ->order('salary','DESC')
            //指定返回的记录条数
            ->limit(5)
            //执行查询最终方法 不建议传入参数
            ->select();

            dump($res);
    }
    //数据插入
    public function insert()
    {
//        1、单条插入
//        $data = [
//            'name'=>'赵倩',
//            'sex'=>1,
//            'age'=>19,
//            'salary'=>19292
//        ];
//       $num = Db::table('staff')
//                ->insert($data);
//        $id = Db::getLastInsID();
//        if ($num >= 1){
//            return '插入'.$num.'条数据成功,插入的最后一条数据是'.$id;
//        }else{
//            return false;
//        }
//        1、多条数据查询
        $data = [
            ['name'=>'李斯', 'sex'=>0, 'age'=>45, 'salary'=>19292],
            ['name'=>'项少龙', 'sex'=>0, 'age'=>35, 'salary'=>8000],
            ['name'=>'乌廷芳', 'sex'=>1, 'age'=>28, 'salary'=>6827],
        ];
       $num = Db::table('staff')
           ->insertAll($data);
        if ($num >= 1){
            return '插入'.$num.'条数据成功';
        }else{
            return false;
        }
    }
    //更新数据
    public function update()
    {
//        更新单条数据
//        $num = Db::table('staff')
//            ->where('staff_id',9)
//            ->update(['salary'=>6000]);
//        if ($num >= 1){
//            return '更新'.$num.'条数据成功';
//        }else{
//            return false;
//        }
        //更新多条数据
        $num = Db::table('staff')
            ->where('salary','>=',5000)
            //raw()引用原始字段的值 data()存储数据 参数是数组
            ->data(['salary'=>Db::raw('salary+1000')])
            ->update();
        if ($num >= 1){
            return '更新'.$num.'条数据成功';
        }else{
            return false;
        }
    }
    //删除数据 不允许无条件删除
    public function delete()
    {
        $num = Db::table('staff')
            ->where('staff_id',16)
            ->delete();
        if ($num >= 1){
            return '删除'.$num.'条数据成功';
        }else{
            return false;
        }
        //清空数据表
//        $num = Db::table('staff')
//            ->delete(true);
//        if ($num >= 1){
//            return '删除'.$num.'条数据成功';
//        }else{
//            return false;
//        }
    }
}

运行实例 »

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


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post