larval 操作mysql数据库_laravel操作数据库

要开启相应数据库的pdo扩展。

2521bce7cb3bbee3f0480e379c512600.png

配置数据库连接

在larave中连接数据库的配置地方有两个

1、.env文件

2、修改config/database.php文件

如下:

5161f5945828ba0e7c04af1a53b5b3a2.png

注意此时要开启MySQL,也就是进程中有MySQL服务

d8ed6f9665a5e4f496ee607252f11e5b.png

创建数据库

CREATE DATABASE `laraveltest` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

注意:laravel5.4之后对我们的数据库的编码就进行了默认改变,默认使用 utf8mb4

看databases.php

ba46b85b2bf568e7b6b4de6a1a189f6b.png

设置路由,检查配置

3f255fba56b2b677bdf87c1d0bc0d79d.png

0273784dcc3dcf562dba88e377c48425.png

1、查询

table(表名),这里的表名,如查有前缀不用写。#查询多条 get all#all不可以接where条件

// 查询所有无条件

$data = DB::table('user')->get(); //默认 [‘*’]

// 查询所有,并指定字段 推荐使第一种方式

$data = DB::table('user')->get(['name','age']);//获取ID大于5的数据

$ret = DB::table('member')->where('id','>=',5)->get();//when 来进行条件的搜索

$kw = $request->get('kw','user');//when 字段 如果为真则执行匿名函数中的操作

$ret = DB::table('users')->when($kw,function (Builder $query) use ($kw){$query->where('username','like',"%{$kw}%");

})->get();#查询单条记录

$ret = DB::table('member')->where('id', 5)->first();#获取某个具体的值

$ret = DB::table('member')->where('id',5)->value('name');#获取一列数据

$ret = DB::table('member')->pluck('name');#以ID为下标 name为值

$ret = DB::table('member')->pluck('name', 'id');#排序操作

$ret = DB::table('member')->orderBy('id','desc')->get();#查询总记录数

echo DB::table('member')->count();#分页获取数据

$ret = DB::table('member')->orderBy('id','desc')->offset(0)->limit(2)->get();

limit:表示限制输出的条数

这里遇到一个问题,如下如果写127.0.0.1会解析成本地的域名,回报没有权限的错误,所以我们要写成localhost

fda30fd3da3ee3f9ab05867cb5bb678b.png

6e9eab75a092d7196de267331ed77b9e.png

在操作表之前一定要引入DB类,如下图:

d2f1205b71a78262926e559ad9083665.png

DB类的引入也可以使用如下:

0b41f6265af637f9651b6f402ffda21e.png

table(表名),这里的表名,如查有前缀不用写。#查询多条 get all#all不可以接where条件

// 查询所有无条件

$data = DB::table('user')->get(); //默认 [‘*’]

// 查询所有,并指定字段 推荐使第一种方式

$data = DB::table('user')->get(['name','age']);//获取ID大于5的数据

$ret = DB::table('member')->where('id','>=',5)->get();//when 来进行条件的搜索

$kw = $request->get('kw','user');//when 字段 如果为真则执行匿名函数中的操作

$ret = DB::table('users')->when($kw,function (Builder $query) use ($kw){$query->where('username','like',"%{$kw}%");

})->get();#查询单条记录

$ret = DB::table('member')->where('id', 5)->first();#获取某个具体的值

$ret = DB::table('member')->where('id',5)->value('name');#获取一列数据

$ret = DB::table('member')->pluck('name');#以ID为下标 name为值

$ret = DB::table('member')->pluck('name', 'id');#排序操作

$ret = DB::table('member')->orderBy('id','desc')->get();#查询总记录数

echo DB::table('member')->count();#分页获取数据

$ret = DB::table('member')->orderBy('id','desc')->offset(0)->limit(2)->get();

limit:表示限制输出的条数

offset:从什么地方开始,起始从0开始$ret = DB::table('users')->whereIn('id',[2,3,5])->get();$ret = DB::table('users')->whereBetween('id',[3,5])->get();

添加数据

insert() 可以同时添加一条或多条,返回值是布尔类型。

insertGetId() 只能添加一条数据,返回自增的id。//添加数据

$ret = DB::table('member')->insert(['name' => '张三丰',

'age' => 50,

'email' => 'ee@ee.com']);//添加数据并得到插入时的ID值

$id = DB::table('member')->insertGetId(['name' => '小华',

'age' => 60,

'email' => 'ff@ff.com']);//添加多条记录

$ret = DB::table('member')->insert([

['name'=>'AAAA','age'=>20,'email'=>'111@111.com'],['name'=>'BBBB','age'=>30,'email'=>'222@222.com'],]);

修改数据

$ret = DB::table('member')->where('id', 2)->update(['name' => '修改一下',

'age' => 50]);

同时插入一些char和varchar区别的整理

数据库中baichar和varchar的区别为:长度不du同、效率不同、zhi存储不同。dao

一、长度不同1、char类型:char类型的长度是固定的。2、varchar类型:varchar类型的长度是可变的。

二、效率不同1、char类型:char类型每次修改的数据长度相同,效率更高。2、varchar类型:varchar类型每次修改的数据长度不同,效率更低。

三、存储不同1、char类型:char类型存储的时候是初始预计字符串再加上一个记录字符串长度的字节,占用空间较大。2、varchar类型:varchar类型存储的时候是实际字符串再加上一个记录字符串长度的字节,占用空间较小。

删除数据(delete)

$ret = DB::table('member')->where('id',2)->delete();

上述的结果有些时对象,可以使用toArray(),把对象转为数组。

当然,上述只有一点内容,更多的使用场景可以看手册,那么手册位置如下图

da9e2b6bd6f0b85f6f3d81f498488a48.png

80041927e4cd92c2f35f485155596dcd.png

ce584f4eaa529c3be91559d62fec9800.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值