我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Laravel框架03:DB类操作数据库

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Laravel框架03:DB类操作数据库

Laravel框架03:DB类操作数据库

一、概述

  • 按照MVC的架构,对数据的操作应该放在Model中完成,但如果不使用Model,也可以用Laravel框架的DB类操作数据库。
  • 对于某些极其复杂的SQL,用Model难以完成。即可使用DB类去执行原生SQL。
  • 基本用法:DB::table('tableName')获取tableName表的实例。

二、数据表的创建与配置

  • 建立数据库和数据表

    CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';use test;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;
  • 数据库在Laravel中的配置
    在这里插入图片描述

  • 在config/database中默认开启了严格模式。开发时可以关闭。
    在这里插入图片描述

  • 在config/app.php中已经引入了DB门面
    在这里插入图片描述

三、增删改操作

1. 增加信息

  • 对数据库中的某个表增加数据主要有两个函数
    1. insert() 可以增加一条或多条,返回值是布尔类型。
    2. insertGetID() 只能添加一条数据,返回自增的ID。
  • 添加一条数据
public function add() {    $db = DB::table("member");    $result = $db->insert([        'name' => "冬梅",        'age' => 18,        'email' => "dongmei@qq.com"    ]);    dd($result);}
  • 添加多条数据
public function add() {    $db = DB::table("member");    $result = $db->insert([        [            'name' => "冬梅",            'age' => 18,            'email' => "dongmei@qq.com"        ],        [            'name' => '秋雅',            'age' => 19,            'email' => "qiuya@qq.com"        ]    ]);    dd($result);}
  • 添加一条记录并获取ID
public function add() {    $db = DB::table("member");    $result = $db->insertGetId([        "name" => "夏洛",        "age" => 20,        "email" => "xialuo@qq.com"    ]);    dd($result);}

2. 修改数据

  • 数据修改可以使用 update()、increment()、decrement() 实现。

    • update 可以修改整个记录中的全部字段,返回影响行数。
    • increment、decrement修改数字字段(递增或递减)
  • 使用 where(字段, 运算符, 值) 限定数据。如果运算符为=,第二个参数可以不写。

    • where()->where()…:这个语法是并且(and)关系。
    • where()->orWhere()…:这个语法是或者(or)关系。
  • 修改ID为1的名字和年龄

    public function update() {    $db = DB::table("member");    $result = $db->where("id", "=", 1)->update([        "name" => "张三丰",        'age' => 200    ]);    dd($result);}
  • 把ID为2的年龄增加10。

    public function update() {    $db = DB::table("member");    # 加10    $result = $db->where("id", 2)->increment('age', 10);    # 减10    $result = $db->where("id", 2)->decrement('age', 10);    dd($result);}

3. 删除数据

  • 在删除中,有两种方式:物理删除、逻辑删除(修改为空)
  • 物理删除:DB::table('tableName')->where('id', 1)->delete();。返回影响行数。
  • 清空整个表:DB::table('tableName')->truncate();

四、查询操作

1. 取出基本数据

  • 取出表中所有数据:DB::table('member')->get();。返回值是一个Collection(集合)对象。

    public function select() {    $db = DB::table("member");    $result = $db->get();    dd($result);}

    在这里插入图片描述

  • 遍历Collection对象,所获得的也是一个对象。

    public function select() {    $db = DB::table("member");    $result = $db->get();    foreach ($result as $index => $item) {        echo "id是:{$item->id},名字是:{$item->name},邮箱是:{$item->email}
    "
    ; }}

    在这里插入图片描述

  • 同样能使用 where 和 orWhere 限定查询范围。

2. 取出单行数据

  • 使用 first 取出一个单行对象。等价于 limit 1。$db->first();
$data = $db->where('age', ">", 25)->first();dd($data);

3. 获取一个字段的值

  • 使用 value('字段名') 获取具体的值。
$data = $db->where('id', 1)->value("name");dd($data);

4. 获取多个字段的值

  • 使用 select('字段名') 获取多个字段的值。
$data = $db->select('name as 名字', "email")->get();dd($data);

在这里插入图片描述

5. 排序

  • 使用orderBy() 对数据进行排序
$data = $db->orderBy('age', 'desc')->get();dd($data);

6. 分页

  • DB::table('member')->limit(3)->offset(2)->get();
    • limit:限制输出的行数
    • offset:从什么地方开始
    • 组合起来等价于:limit 5, 5
  • paginate 方法根据用户浏览的当前页码,自动设置恰当的偏移量 offset 和限制数 limit。DB::table('users')->paginate(15);

五、执行任意的SQL语句

  1. 执行任意的修改:DB::statement("SQL语句");
  2. 执行任意的查询:DB::select("SQL语句");

来源地址:https://blog.csdn.net/realoser/article/details/129225624

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Laravel框架03:DB类操作数据库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Laravel数据库操作之DB facade

一、查询操作$student=DB::select(select*fromuser);//返回一个二维数组$studentvar_dump($student);//以节点树的形式输出
2020-11-23

详解nodejs操作mongodb数据库封装DB类

这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评。 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的。 关于mongoose的安装就是 npm i
2022-06-04

laravel数据库操作

了解 Laravel 某个模块的内部实现,最好的切入点就是从 composer.json 开始,从里面我们主要可以得到以下信息:require 字段可以
2016-06-17

PHP 数据库操作与ORM 框架

php中操作数据库的方法有两种:低级pdo api和简化操作的orm框架。pdo允许直接与数据库交互,通过连接、查询和获取结果的步骤实现。orm框架(如doctrine)将数据库表映射为php类,简化了数据库操作,包括获取、查找和保存记录。
PHP 数据库操作与ORM 框架
2024-04-30

NodeJs Express框架如何操作MongoDB数据库

这篇文章主要介绍“NodeJs Express框架如何操作MongoDB数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“NodeJs Express框架如何操作MongoDB数据库”文章能帮助大
2023-07-04

PHP单例模式怎么实现数据库操作类的框架

这篇文章主要介绍了PHP单例模式怎么实现数据库操作类的框架的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP单例模式怎么实现数据库操作类的框架文章都会有所收获,下面我们一起来看看吧。在PHP中,单例是一个类有
2023-06-30

SpringMVC框架怎么搭建idea操作数据库

这篇文章主要介绍“SpringMVC框架怎么搭建idea操作数据库”,在日常操作中,相信很多人在SpringMVC框架怎么搭建idea操作数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringMVC
2023-06-29

Laravel框架中如何使用MongoDB数据库

这篇文章主要为大家展示了“Laravel框架中如何使用MongoDB数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Laravel框架中如何使用MongoDB数据库”这篇文章吧。1、先确定好
2023-06-29

laravel框架 路由和表单数据传输 数据库

设置路由:use IlluminateSupportFacadesRoute;//设置路由访问控制器只能是get访问// Route::get(‘/user‘,‘[email protected]‘);// Route::get(‘/‘,function(){
laravel框架 路由和表单数据传输 数据库
2016-05-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录