在线教育案例Laravel当中的DB类操作数据库
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线教育案例Laravel当中的DB类操作数据库相关的知识,希望对你有一定的参考价值。
按照MVC 的架构,对数据的操作应该放在 Model 中完成,但如果不使用Model,我们也可以用 laravel框架提供的 DB 类操作数据库。而且,对于某些极其复杂的sql,用Model 已经很难完成,需要开发者自己手写sql语句,使用 DB 类去执行原生sql。 laravel 中 DB 类的基本用法DB::table('tableName') 获取操作tableName表的实例。
1、数据表的创建与配置
(1)创建数据库和表
create table member(
id int primary key auto_increment,
name varchar(32) not null,
age tinyint unsigned not null,
email varchar(32) not null
)engine myisam charset utf8;
(2)数据库在laravel框架中的配置
在.env文件里面,
也可以在config目录下面的database.php文件里面配置,使用env函数,表示先从env文件里面获取,如果获取成功则使用,如果获取失败,则使用env函数的第二个参数。
注意:如果是php artisan serve方式启动的,修改了配置文件,则需要重新启动,才能读取修改后的配置文件;
(3)创建一个MemberController.php的控制器,可以使用命令来完成;
语法:
> php artisan make:controller MemberController
现在代表需要在app\\Http\\Controllers这个目录创建MemberController.php
创建的控制器如下;
注意:要使用DB类,必须在控制器中,引入DB类即可
(4)计路由规则
Route::get('member/add','MemberController@add')
2、增加信息(insert)
对数据库中的某个表增加数据主要有两个函数可以实现,分别是insert()和insertGetId()
insert()可以同时添加一条或多条,返回值是布尔类型。
insertGetId(),只能添加一条数据,返回自增的id。
注意:DB::table('无前缀的表名')
向member表,同时添加多条数据,返回值是布尔值
3、修改数据( update)
数据修改可以使用update()、increment()和decrement()函数来实现。
案例:把id=1的名称,改名为‘小倩’
->where()->update([])
->where('id',1)表示条件是id=1,
案例:把id=1的用户年龄字段值加10;
DB::table('users')->where('id',1)->increment('age',10);
DB::table('users')->increment('votes');
DB::table('users')->increment('votes', 5);
DB::table('users')->decrement('votes');
DB::table('users')->decrement('votes', 5);
4、查询数据(get)
(1)取出基本数据
案例1:获取member表中所有的数据
DB::table('member')->get(); //返回值是一个集合对象(多条记录形成的对象集合)
//select * from member;
遍历时,要以对象的方式输出数据;
案例2:获取id<3的数据
$data = DB::table('member')->where('id','<',3)->get();//
(2)取出单行数据(一条记录)
DB::table('member')->where('id','1')->first();//返回值是一个对象(当前行数据形成的一个对象)
(3)获取某个具体的值
DB::table('member')->where('id','1')->value('name')//返回值就是满足条件的name值。
(4)获取某些字段数据
$users = DB::table('users')->select('name', 'email')->get();
$users = DB::table('users')->distinct()->get();
$users = DB::table('users')->select('name as user_name')->get();
(4)排序操作
DB::table('member')->orderBy('age','desc')->get();
(5)分页操作
从第2行显示到第4行;
DB::table('member')->limit(3)->offset(1)->get();
5、删除数据(delete)
数据删除可以通过delete函数和truncate函数实现,
DB::table('table_name')->where('id','1')->delete();
案例:删除id=2的数据
DB::table('table_name')->where('id','2')->delete();
案例:删除id<3的数据
DB::table('table_name')->where('id','<','3')->delete();
6、执行任意的SQL语句
(1)执行任意的insert update delete语句
DB::statement(“insert into member values(null,’’)”);
(2)执行任意的select语句
$res = DB::select("select * from member");
var_dump($res);
以上是关于在线教育案例Laravel当中的DB类操作数据库的主要内容,如果未能解决你的问题,请参考以下文章