laravel框架 数据库相关操作 增删改查


增加操作:add


可以使用insert 和 insertGETID,两者的不同之处:

  • insert方法:可以插入数据表中的一条或多条信息;参数是一维/二维数组;
  • insertGETID:只能向数据表中插入一条数据,并且返回新增数据的主键id,只能是一维数组。

insert方法和insertGETID方法的使用:

向数据库中的数据表中插入信息;

使用语法:

  • BD::table(‘表名’)->insert/insetGETID(数组,一维或者二维);
  • Member::insert/insertGETID(数组,一维或者二维);Member是自己创建的模型
  • insertGetid只可以插入一条数据,因此只可以插入一维数组。

1,在自己创建的控制器里写方法,方法一定要在routes/web.php文件下声明过路由,,,这样才可以只在在网页上访问

Route::get('add','TestController@add');
Route::get('del','TestController@del');
Route::get('mod','TestController@mod');
Route::get('select','TestController@select');

2,要引入DB类,和引入模型,,引入的时,首字母要大写,否则将会报错,不可使用。
DB类方式返回的和模型方式返回的值不一样

//引入DB,db可以直接操作所有的数据表
use DB;
//模型引入
use App\Member;

3,在class里写方法体,public function add(){}
可以使用DB类的方式写,也可以使用模型类的方式写;
键值数组的名称就是数据表中对应的字段名。

class TestController extends Controller
{
   //向数据库添加数据的方法
   public function add(){
      // 用DB类往数据库里member表里添加多条数据  insert
      dump(DB::table('member')->insert([['id'=>'01','name'=>'张三','age'=>'18','email'=>'[email protected]'],
                                        ['id'=>'02','name'=>'李四','age'=>'20','email'=>'[email protected]'],
                                       ['id'=>'03','name'=>'王五','age'=>'22','email'=>'[email protected]']
                                         ])
       );



      // 用模型类往里数据库里添加  insert
       dump(Member::insert(['id'=>'04','name'=>'李六','age'=>'18','email'=>'[email protected]']));



      //用DB类往数据库里member表里添加数据  insertGETID插入方式只可以插入一条数据,用数组一维就可以
      dump(DB::table('member')->insertGETID(['id'=>'05','name'=>'易烊千玺','age'=>'18','email'=>'[email protected]']));
   }
}

修改操作:mod


修改数据库中数据表的字段信息:

可用方法:update,,,where
使用语法:

  • DB::table(‘表名’)->where(条件)->update(一维数组);
  • Model::where(条件)->update(一维数组);

where的用法:

  • obj->where(‘字段名’,‘运算符’,‘字段值’)->where() 表示and,并且
  • obj->where(‘字段名’,‘运算符’,‘字段值’)->orwhere() 表示or ,或
  • 当运算符为“=”的时候可以省略,where还支持字符串,数组形式。
  • 修改数据表中的数据时,一定要加上条件

示例:


   // 修改数据库里的操作
   public function mod(){
       // 把数据表里的原来名字为张三的改为张三疯  DB类
        dump(DB::table('member')->where('name','张三')->update(['name'=>'张三疯']));

        //用模型类的方式  将数据库里id为01的改为 id 为888
     dump(Member::where('id','01')->update(['id'=>'888']));

        // 将name为易烊千玺的那条数据中的 id值改位666
       dump(Member::where('name','易烊千玺')->update(['id'=>'666']));

        // 模型类  将邮箱中包含1345的那条数据中的年龄改为4
      dump(Member::where('email','like','1345')->update(['age'=>'4']));

//模型类的方法,,将数据表中id>2的所有人的年龄改为5
dump(Member::where('id','>','2')->update('age'=>'5'));
   }

查询操作:select


涉及的方法:get all value find where select limit offset
含义:

  • get() 表示查询所有的数据
  • all() 表示查询所有的数据 (DB类中all()方法不可使用,模型类中可以。。)
  • value 获取某个字段的值
  • find 查找单个记录
  • orderBy 排序 asc升序 desc降序
  • select 选择需要的字段
  • limit 限制输出的记录数
  • offset 表示偏移量 配合limit一起使用

使用语法:
DB::table(‘表名’)->相关的方法 (上面的)->最终查询方法();
Model::相关的方法 (上面的)->最终查询方法();
注意:

  1. 相关辅助方法可以是多个,但必须在最终查询方法之前;
  2. all方法 不可以使用任何辅助方法,包括DB后面的table方法因此,all只可以在模型类中使用:

示例:

public function select(){
        // 查找member表的所有数据  DB类
      dump(DB::table('member')->get());
        // 查找member表的所有数据  模型类
   dump(Member::get());

        // DB类 all()方法不可使用
         // 模型类 all()方法可以使用
        dump(Member::all());

        // 查找id为666的值 和查找id值为999的
       dump(DB::table('member')->find(666));
     dump(Member::find(999));


        // 查找id为999 的获取他的email值
       dump(DB::table('member')->where('id','999')->value('email'));

// 查询id>2的用户的名字和年龄,并且按照id降序排列
dump(DB::table('member')->where('id','>','2')->select('name','age')->orderBy('id','desc')->get());


// 从第二条记录开始向后查询两条记录
dump(DB::table('member')->where('id','>','2')->limit(2)->get());
// skip跳过几级,take取多少数据
 dump(DB::table('member')->skip(2)->take(2)->get());
// offset设置从哪里开始,limit设置查询多少条语句   offset 和 limit 一起使用去实现自定义分页功能
dump(DB::table('member')->offset('2')->limit('2')->get());


// dump(DB::table('member')->paginate(2));

   }

发布了46 篇原创文章 · 获赞 0 · 访问量 503

猜你喜欢

转载自blog.csdn.net/qq_45844648/article/details/105201179