准备
新建App\Http\Controller\StudentController.php
<?php namespace App\Http\Controller; use Illuminate\Support\Facades\DB;//使用DB类 class StudentController extends Controller{ //创建名为StudentController的控制器并继承Controller基类 public function query(){ //php } }
切换至routes\web.php新建一个路由
[php]
Route::any(‘query’,’StudentController@query’);
[/php]
创建
连接数据库
配置.env文件
[php]
DB_CONNECTION=mysql[数据库的连接模式]
DB_HOST=数据库的IP地址
DB_PORT=数据库端口
DB_DATABASE=数据库库名
DB_USERNAME=数据库用户名
DB_PASSWORD=数据库密码
[/php]
配置config/database.php
[php]
‘mysql’ => [
‘driver’ => ‘mysql’, //数据库的类型
‘host’ => env(‘DB_HOST’, ‘localhost’), //数据库的位置
‘port’ => env(‘DB_PORT’, ‘3306’), //端口号
‘database’ => env(‘DB_DATABASE’, ”), //数据库名
‘username’ => env(‘DB_USERNAME’, ”), //用户名
‘password’ => env(‘DB_PASSWORD’, ”), //密码
‘charset’ => ‘utf8’, //字符集
‘collation’ => ‘utf8_unicode_ci’, //排序方式
‘prefix’ => ”, //前缀
‘strict’ => true, //Strict模式
‘engine’ => null, //引擎
],
[/php]
至此laravel即可连接上数据库了
使用DB facades完成数据库操作
SQL语句中的?是占位符,可以通过第二变量传入数组来传递数值
查询数据
[php]
DB::select(“select * from student”);//可以直接使用select语句
DB::select(“select * from student where age = ? and name = ?”,[18,’7gugu’])//等同于:select * from student where age = 18 and name = ‘7gugu’
[/php]
插入数据
[php]
DB::insert(“insert into student(name,age,sex) values(‘hzq’,’19’,’0′)”);//可以直接使用insert语句
DB::insert(“insert into student(name,age,sex) values(?,?,?)”,[‘hzq’,’19’,’0′]);//等同于:insert into student(name,age,sex) values(‘hzq’,’19’,’0′),这样子方便传值
[/php]
更新数据
[php]
DB::update(“update student set age = 1 where name =7gugu”);//可以直接使用update语句
DB::update(“update student set age = ? where name =?”,[1,’7gugu’])//等同于:update student set age = 1 where name =’7gugu’
[/php]
删除数据
[php]
DB::delete(‘delete from student where id=1002’);//直接使用delete语句
DB::delete(‘delete from student where id=?’,[‘1002’]);//等同于:delete from student where id=1002
[/php]
使用查询构造器
数据表指向器
[php]
DB::table(“数据表名”)->操作/筛选器;
DB::table(‘student’)->操作/筛选器;
[/php]
筛选器
[php]
DB::table(‘student’)->where()->操作;
where(‘id’,1001)//即可筛选id是1001的数据
where(‘id’,’=’,1001)//即可筛选id是1001的数据
where(‘id = ? and name = ?’,[1001,’7gugu’])//即可限定多个条件
[/php]
排序
[php]
/*
* @param string 字段名称
* @param string 排序方式(ASC:正序|DESC:倒序)
*/
DB::table(‘student’)->orderBy(‘字段名’,’asc|desc’)->操作;
[/php]
字段值自增
[php]
/*
* 数值自增
* @param string 字段名称
* @param int 单次自增数量
*/
DB::table(‘student’)->where(‘id’,’1001′)->increment(‘age’,1);
[/php]
字段值自减
[php]
/*
* 数值自减
* @param string 字段名称
* @param int 单次自减数量
*/
DB::table(‘student’)->where(‘id’,’1001′)->decrement(‘age’,1);
[/php]
插入数据
[php]
DB::table(‘student’)->insert([‘name’=>’7gugu’,’age’=>’18’]);//插入一条数据
DB::table(‘student’)->insert([
[‘name’=>’test’,’age’=>’20’],
[‘name’=>’guangzhou’,’age’=>’30’]
]);//使用一个数组来承载多条数据,即可插入多条数据
[/php]
更新数据
[php]
DB::table(‘student’)->where(‘id’,1004)->update([‘age’=>30]);//使用update函数即可更新指定字段的值
//laravel好像并不可以一次性更新多个字段
[/php]
删除数据
[php]
DB::table(‘student’)->where(‘id’,’1002′)->delete();
[/php]
get函数
[php]
/*
*用于获取限定条件后的数据,可以无限定条件直接获取
*/
DB::table(‘student’)->get();
[/php]
first函数
[php]
/*
* 用于获取符合限定条件的第一行的数据
* 无需传参
*/
DB::table(‘student’)->first();
[/php]
pluck函数
[php]
/*
* 获取指定名称的字段数据
*/
DB::table(‘student’)->pluck(‘name’,’age’);
[/php]
效果如图所示:
聚合函数
[php]
//count()统计表的数据总数
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’)->avg(‘age’);
[/php]
truncate函数
清空表中数据[危险]
[php]
//truncate()清空表中数据[危险]
DB::table(‘student’)->truncate();
[/php]
chunk函数
用于分块查找数据(用于大量数据查找时使用)
[php]
DB::table(‘users’)->chunk(2, function($users)
{
dd($users);//每次运行仅仅查询两条数据,直至查询完毕
});
[/php]
结果如图所示: