查询构造器方式
Last updated
Was this helpful?
Last updated
Was this helpful?
参考:
routes/web.php文件中配置
Route::any('queryAdd', ['uses' => 'StudentController@queryAdd']); // 使用查询构造器添加数据
Route::any('queryUpdate', ['uses' => 'StudentController@queryUpdate']); // 使用查询构造器更新数据
Route::any('queryDelete', ['uses' => 'StudentController@queryDelete']); // 使用查询构造器删除数据
Route::any('queryOthers', ['uses' => 'StudentController@queryOthers']); // 使用查询构造器其他操作
Route::any('queryConverge', ['uses' => 'StudentController@queryConverge']); // 使用查询构造器聚合函数
文件示例App\Http\Controllers\StudentController
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
{
// 使用查询构造器添加数据
public function queryAdd()
{
// $bool = DB::table('student')->insert(
// ['name' => 'imooc', 'age' => 18]
// );
// var_dump($bool);
// $id = DB::table('student')->insertGetId(
// ['name' => 'sean', 'age' => 18]
// );
// var_dump($id);
$bool = DB::table('student')->insert([
['name' => 'name1', 'age' => 20],
['name' => 'name2', 'age' => 21],
]);
var_dump($bool);
}
// 使用查询构造器更新数据
public function queryUpdate()
{
// $num = DB::table('student')
// ->where('id', 12)
// ->update(['age' => 30]);
// var_dump($num);
//$num = DB::table('student')->increment('age');
//$num = DB::table('student')->increment('age', 3);
//$num = DB::table('student')->decrement('age');
//$num = DB::table('student')->decrement('age', 3);
// $num = DB::table('student')
// ->where('id', 12)
// ->decrement('age', 3);
$num = DB::table('student')
->where('id', 12)
->decrement('age', 3, ['name' => 'iimooc']);
var_dump($num);
}
// 使用查询构造器删除数据
public function queryDelete()
{
// $num = DB::table('student')
// ->where('id', 15)
// ->delete();
// $num = DB::table('student')
// ->where('id', '>=', 13)
// ->delete();
// var_dump($num);
DB::table('student')->truncate();
}
// 其他操作
public function queryOthers()
{
// 批量插入
$bool = DB::table('student')->insert([
['id' => 1001, 'name' => 'name1', 'age' => 18],
['id' => 1002, 'name' => 'name2', 'age' => 18],
['id' => 1003, 'name' => 'name3', 'age' => 19],
['id' => 1004, 'name' => 'name4', 'age' => 20],
['id' => 1005, 'name' => 'name5', 'age' => 21],
]);
var_dump($bool);
// get() 获取所有数据
$studnets = DB::table('student')->get();
// first 获取第一条数据
$student = DB::table('student')
->orderBy('id', 'desc')
->first();
dd($student);
// where 条件查询
$students = DB::table('student')
->where('id', '>=', 1002)
->get();
// 多查询条件
$students = DB::table('student')
->whereRaw('id >= ? and age > ?', [1001, 18])
->get();
// pluck 只返回name列数据
$names = DB::table('student')
->pluck('name');
//lists 以id值为key,name值为value的数组
$names = DB::table('student')
->lists('name', 'id');
// select 返回固定字段
$students = DB::table('student')
->select('id', 'name', 'age')
->get();
// chunk 快查询
echo '<pre>';
DB::table('student')->chunk(2, function($students) {
var_dump($students);
if (你的条件) {
return false;
}
});
//dd($students);
}
// 聚合函数
public function queryConverge()
{
$num = DB::table('student')->count();
$max = DB::table('student')->max('age');
$min = DB::table('student')->min('age');
$avg = DB::table('student')->avg('age');
$sum = DB::table('student')->sum('age');
var_dump($sum);
}
}