1. 创建数据表,数据库
2. 配置数据库文件(数据库配置文件位置,在.env文件中),如下图
也可以在config目录下面的database.php文件里面配置,使用env函数,表示先从env文件里面获取,如果获取成功则使用,如果获取失败,则使用env函数的第二个参数。
3. 在Test控制器文件中引入DB门面(DB门面在app.php中已经定义好别名DB,可以直接使用,不需要写太长的命名空间了)
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Input;
//引入DB门面
use DB;
class TestController extends Controller
{
//
}
4. 定义增删改查的控制器路由
//DB门面的增删改查
Route::group(['prefix' => '/home/test'],function(){
Route::get('add','TestController@add');
Route::get('del','TestController@del');
Route::get('update','TestController@update');
Route::get('select','TestController@select');
5. 编写控制器方法
- 增加信息
//可以同时添加一条或多条数据,返回值是布尔类型
DB::table('member')->insert([]);
//只能增加一条,返回值是自增的id
DB::table('member')->insertGetId([]);
public function add(){
//指定需要操作的数据表
$db=DB::table('member');
// 使用insert增加记录
$result=$db->insert([
[
'name' => '马冬梅',
'age' =>'18',
'email' =>'[email protected]'
],
[
'name' => '马冬梅',
'age' =>'18',
'email' =>'[email protected]'
],
[
'name' => '马春梅',
'age' =>'19',
'email' =>'[email protected]'
]
]);
//插入一条数据,使用insertGetId
$result=$db->insertGetId([
'name' => '马冬梅',
'age' =>'18',
'email' =>'[email protected]'
]);
dd($result);
}
- 修改数据
数据修改可以使用update()
、increment()
和decrement()
来函数实现
update()
表示可以修改整个记录中的全部字段
increment()
和decrement()
表示修改数字字段的数值(递增或递减)
返回值代表受影响的行数
public function update(){
//定义需要操作的数据表
$db=DB::table('member');
//修改id为1的用户的名称为张三丰
$rst=$db -> where('id','=','1') -> update([
//需要修改字段的键值对
'name'=>'张三丰'
]);
dd($rst);
}
- 查询数据
(1)取出基本的数据
get查询的结果每一行记录是对象的形式,不是数组
DB::table('member')->get();,相当于 select * form member
public function select(){
$db=DB::table('member');
// //查询全部的数据
$data=$db->get();
}
//循环遍历输出
foreach($data as $key=>$value){
echo "id是:{$value-> id},名字是:{$value->name},邮箱是:{$value->email}
";
注意:where方法之后继续调用where方法
where()-> where()-> where()…
这个语法是并且(and)关系语法。
where> orWhere-> orWhere …
这个语法是或者or关系语法
Orwhere方法的参数与 where一致
(2)取出单行数据(一个字段)
DB::table('member')->where('id','1')->first()
//返回值是一个对象,等价于limit 1
//取出单行数据
$data=$db->where('id','1')->first();
(3)获取某些字段数据(多个字段)
$user=DB::table('member')->select('name','email')->get()
$user=DB::table('member')->select('name as user name')->get()
//查询指定的一些值
$data=$db->select('name','email')->get();
(4)取出某个具体的值
DB::table('member')->where('id','1')->value('name')
//取出某个具体的值
$data=$db->where('id','1')->value('email');
(5)排序操作
DB::table('member')->orderBy('age',desc)->get();
asc desc
//按照指定的字段进行排序
$data=$db->orderBy('age','desc')->get();
(6)分页操作
DB::table('member')->limit(3)->offset(2)->get();
//分页操作
$data=$db->limit(2)->offset(1)->get();
limit:表示限制输出的条数
offset:表示从什么地方开始
组合起来等价于limit 5 ,5