2.1、laravel支持的数据库类型

MySQL

Pgsql

SQLite

SQL Server

laravel操作数据库所使用的扩展 pdo,一定要开启pdo扩展

2.2、配置连接数据库信息

在laravel中修改连接数据库的文件有两处

  • 修改 .env文件
  • 修改config/database.php文件。

laravel5.4之后对我们的数据库的编码就进行了默认改变,默认使用 utf8mb4

创建数据库

修改.env文件来连接数据库

到此我们的数据库的配置就完成了

注:表前缀,如果有则添加,没有可以不修改。

检查是否配置好

2.3、DB类执行原生SQL语句 

// 添加操作
$ret = DB::insert('insert into test_member (name,age,email) values (:name,:age,:email)', [':name'=>'张三',':age'=>20,':email'=>'admin@admin.com']);// 修改操作
$ret = DB::update('update test_member set age=:age where id=:id', [':age' => 12, ':id' => 1]);// 查询 select
# 查询单条
$ret = DB::selectOne("select * from web64_user where id=:id",[':id'=>$id]);
# 查询多条
$ret = DB::select("select * from web64_user");// 删除操作
$ret = DB::delete("delete from test_member where id=:id",[':id'=>1]);——————————————————————————————————————————————————————————————————————————————————————public function db(){// 添加/*$sql = 'insert into la_users (username,password) values(:username,:password)';# 返回true/false// $ret = DB::insert($sql,[':username'=>'admin',':password'=>'admin888']);$ret = DB::insert($sql,['username'=>'admin1','password'=>'admin8881']);*/// 修改/*$sql = "update la_users set username=:username where id=:id";# 返回影响行数$ret =DB::update($sql,['username'=>'张三','id'=>1]);dd($ret);*/// 查询单条/*$sql = "select * from la_users where id=:id";# 返回一个集合对象$ret = DB::selectOne($sql,['id'=>1]);dump($ret);*/// 查询多条/*$sql = "select * from la_users";# 返回一个数组的集合$ret = DB::select($sql);dump($ret);*/// 删除$sql = "delete from la_users where id=:id";# 返回影响行数$ret = DB::delete($sql,['id'=>1]);dd($ret);}

定义路由

创建控制器

php artisan make:controller MydbController

数据表

控制器

2.4、DB构建器操作数据库

2.4.1、查询(get/first)

table(表名),这里的表名,如查有前缀不用写。# 查询多条 get all
# all不可以接where条件// 查询所有无条件
$data = DB::table('user')->get(); // 默认 [‘*’]
// 查询所有,并指定字段 推荐使第一种方式
$data = DB::table('user')->get(['name','age']);
// 获取ID大于5的数据
$ret = DB::table('member')->where('id','>=',5)->get();// when 来进行条件的搜索
$kw = $request->get('kw','user');
// when                        字段  如果为真则执行匿名函数中的操作
$ret = DB::table('users')->when($kw,function (Builder $query) use ($kw){
$query->where('username','like',"%{$kw}%");
})->get();# 查询单条记录
$ret = DB::table('member')->where('id', 5)->first();# 获取某个具体的值
$ret = DB::table('member')->where('id',5)->value('name');# 获取一列数据
$ret = DB::table('member')->pluck('name');
# 以ID为下标 name为值
$ret = DB::table('member')->pluck('name', 'id');# 排序操作
$ret = DB::table('member')->orderBy('id','desc')->get();# 查询总记录数
echo DB::table('member')->count();# 分页获取数据
$ret = DB::table('member')->orderBy('id','desc')->offset(0)->limit(2)->get();
limit:表示限制输出的条数
offset:从什么地方开始,起始从0开始$ret = DB::table('users')->whereIn('id',[2,3,5])->get();
$ret = DB::table('users')->whereBetween('id',[3,5])->get();__________________________________________________________________// db构建器public function db2(Request $request){# 查询所有// $ret = DB::table('users')->get();# 获取所有 只要一个字段// $ret = DB::table('users')->get(['username']);# 查询id大于等于3的记录// $ret = DB::table('users')->where('id','>=','3')->get();# id 大于等于 3 或者username=admin1// $ret = DB::table('users')->where('id','>=',3)->orWhere('username','admin1')->get();# 根据用户名查找// $kw = $request->get('kw','adm');// when                              字段 如果为真 就执行匿名函数/*$ret = DB::table('users')->when($kw,function(Builder $query) use ($kw){$query->where('username','like',"%{$kw}%");})->get();*//*$ret = DB::table('users')->where(function (Builder $query) use ($kw){$query->where('username','like',"%{$kw}%");})->get();*/#id为3// $ret = DB::table('users')->where('id',3)->first();# 获取id为的用户名// $ret = DB::table('users')->where('id',3)->value('username');# 获取用户名这一列的数据// $ret = DB::table('users')->pluck('username','id');# 获取总数#$ret = DB::table('users')->where('id','>',2)->count();# 排序// $ret = DB::table('users')->orderBy('id','desc')->get();#分页// $ret = DB::table('users')->orderBy('id','desc')->offset(0)->limit(2)->get();// $ret = DB::table('users')->whereIn('id',[2,3,4])->get();// $ret = DB::table('users')->whereBetween('id',[2,4])->get();// 添加数据$table = DB::table('users');/*$ret = $table->insert(['username'=>'admin12','password'=>'fusk']);*/// 添加多条/*$data = [];for ($i=6;$i<10;$i++):$data[] = ['username'=>'user'.$i,'password'=>'user'.$i,];endfor;$ret = $table->insert($data);*/// 添加单条并返回插入时候的id/*$ret = $table->insertGetId(['username'=>'user10','password'=>'user10']);*/// 修改/*$ret = $table->where('id',10)->update(['username'=>'user111','password'=>'user111']);*/// 删除$ret = $table->delete(10);dump($ret);}

定义路由

控制器

2.4.2、添加数据操作(insert/ insertGetId)

对数据库中的某个表增加数据主要有两个方法可以实现,分别是insert()和insertGetId()

insert()        可以同时添加一条或多条,返回值是布尔类型。
insertGetId()  只能添加一条数据,返回自增的id。// 添加数据
$ret = DB::table('member')->insert([
'name' => '张三丰',
'age' => 50,
'email' => 'ee@ee.com'
]);
// 添加数据并得到插入时的ID值
$id = DB::table('member')->insertGetId([
'name' => '小华',
'age' => 60,
'email' => 'ff@ff.com'
]);// 添加多条记录
$ret = DB::table('member')->insert([
['name'=>'AAAA','age'=>20,'email'=>'111@111.com'],
['name'=>'BBBB','age'=>30,'email'=>'222@222.com'],
]);

2.4.3、修改数据(update)

$ret = DB::table('member')->where('id', 2)->update([
'name' => '修改一下',
'age'  => 50
]);

2.4.4、删除数据(delete)

// 删除数据

$ret = DB::table('member')->where('id',2)->delete();

laravel db类相关推荐

  1. php think命令用不了,自定义 PHP think 命令无法在命令类文件里面使用 Db 类

    thinkPHP版本是5.0.14 输入 php think 在 Available commands: 下面能看到有housePost命令 Available commands: build Bui ...

  2. php mysql db封装类_封装自己的DB类(PHP)

    classDB{//属性 private $host;private $port;private $user;private $pass;private $dbname;private $charse ...

  3. php 仓储 sqlite_详解php封装db类连接sqlite3

    sqlite3_open是sqlite数据库的api函数(C/C++),作用是打开(或创建)一个数据库文件.本文主要和大家分享php封装db类连接sqlite3 的知识,希望能帮助到大家.<?p ...

  4. thinkphp mysql类_PHP封装类似thinkphp连贯操作数据库的Db类(简单版)

    为了方便操作Mysql数据库, 封装类似thinkphp连贯操作数据库的Db类<?php header("Content-Type:text/html;charset=utf-8&qu ...

  5. php db类 应用实例,PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例

    本文实例讲述了PHP封装类似thinkphp连贯操作数据库Db类与简单应用.分享给大家供大家参考,具体如下: header("Content-Type:text/html;charset=u ...

  6. python pymysql cursors_老雷python基础教程之pymysql学习及DB类的实现

    老雷python教程之pymysql学习及DB类的实现 CREATE TABLE `sky_guest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` ...

  7. discuz mysql类_Discuz论坛教程之数据库操作DB类和C::t类介绍

    Discuz论坛教程之数据库操作DB类和C::t类介绍 类定义文件 DB类: 文件\source\class\class_core.php [php]view plaincopy classDB ex ...

  8. php 数组分块查找,laravel 控制器类DB的相关操作操作

    $users = DB::table("users")->get(); foreach ($users as $user) { var_dump($user->name ...

  9. Laravel db:seed 报错 [ReflectionException] Class XXX does not exist

    项目中修改了 CommonInfoTableSeeder 的 seed 文件 ,报错: php artisan db:seed --class=CommonInfoTableSeeder[Reflec ...

最新文章

  1. python 两阶段聚类_使用Python进行层次聚类
  2. 阿里巴巴60万年薪抢毕业生 必须是公认技术牛人
  3. osg::ComputeBoundsVisitor用法(二)
  4. Spark基础学习笔记11:Scala运算符
  5. 一个进程(Process)最多可以生成多少个线程(Thread)
  6. 罗曼股份抢先驶入四万亿智慧城市建设主航道
  7. 怎样用一个3升的杯子和一个5升的杯子装出4升水来(杯子没有刻度)?
  8. Swagger生成WebAPI文档
  9. 大学计算机导学,大学计算机一级--导学.ppt
  10. 西安西北大学计算机研究生学费,关于西北大学研究生学费及住宿的解答
  11. 2021年材料员-岗位技能(材料员)新版试题及材料员-岗位技能(材料员)考试试卷
  12. 怎么样可以对腾讯云IM-SDK集成(web端)完成IM登录
  13. 设计-前端设计尺寸与规范
  14. 错误的英语提示翻译 以及经常犯的无错误
  15. 如何用VBA从EXCEL表取数据?问题1:1次性整体写入,还是循环写入数组呢? 问题2:取得数据后如何定位需要的那个?
  16. Deqin- 升级版测手速游戏
  17. Apache DolphinScheduler 诞生记
  18. unity Material的批量修改和单独处理
  19. 解决input事件监听拼音输入法导致高频事件
  20. matlab得到计算机时间,Matlab中处理日期与时间的函数

热门文章

  1. 渗透测试CTF-图片隐写的详细教程2(干货)
  2. [音视媒体制作]小巧的音频处理工具 GoldWave 进阶教程
  3. 图表生成pdf,出坑经历
  4. 学习并掌握结构化写作方法,提高写作能力 ——结构化写作学习笔记(4)
  5. html取服务器时间,客户端获取服务器时间记时
  6. Python解题 - 硬币的面值
  7. 自己写的粗糙的Excel数据驱动Http接口测试框架(一)
  8. java定义一个Person类
  9. 小米 ios消息推送服务器吗,iOS15推送之后,小米MIUI13新消息来了
  10. 辽宁启迪电商:拼多多店铺推广收费标准是什么?