博客列表 >常用的thinkphp数据库操作方法 ---2018年5月24日

常用的thinkphp数据库操作方法 ---2018年5月24日

失去过去的博客
失去过去的博客原创
2018年05月24日 11:28:331632浏览

常用的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;
//        }
    }
}

运行实例 »

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议