增加操作: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'=>'1345@qq.com'],
['id'=>'02','name'=>'李四','age'=>'20','email'=>'6789@qq.com'],
['id'=>'03','name'=>'王五','age'=>'22','email'=>'0147@qq.com']
])
);
// 用模型类往里数据库里添加 insert
dump(Member::insert(['id'=>'04','name'=>'李六','age'=>'18','email'=>'1345@qq.com']));
//用DB类往数据库里member表里添加数据 insertGETID插入方式只可以插入一条数据,用数组一维就可以
dump(DB::table('member')->insertGETID(['id'=>'05','name'=>'易烊千玺','age'=>'18','email'=>'1345@qq.com']));
}
}
修改操作: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::相关的方法 (上面的)->最终查询方法();
注意:
- 相关辅助方法可以是多个,但必须在最终查询方法之前;
- 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));
}
删除操作:del
方法delete:
语法:
DB::table(‘表名’)->where(判断条件)->delete();
Member::where(判断条件)->delete();
删除id>4的数据:
public function del(){
// 删除id>4的那条数据
dump(DB::table('member')->where('id','>',4)->delete());
}
返回受影响的行;