iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Laravel框架03:DB类操作数据库
  • 230
分享到

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

数据库laravelphp 2023-09-01 19:09:37 230人浏览 独家记忆
摘要

Laravel框架03:DB类操作数据库 一、概述二、数据表的创建与配置三、增删改操作1. 增加信息2. 修改数据3. 删除数据 四、查询操作1. 取出基本数据2. 取出单行数据3. 获取

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

--结束END--

本文标题: Laravel框架03:DB类操作数据库

本文链接: https://www.lsjlt.com/news/389397.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作