php db类 应用实例,PHP-Laravel(DB类操作数据库)

四、DB类操作数据库(重点)

按照MVC 的架构,对数据的操作应该放在 Model 中完成,但如果不使用Model,我们也可以用 laravel框架提供的 DB 类操作数据库。而且,对于某些极其复杂的sql,用Model 已经很难完成,需要开发者自己手写sql语句,使用 DB 类去执行原生sql。 laravel 中 DB 类的基本用法DB::table(‘tableName’) 获取操作tableName表的实例(对象)。

1、数据表的创建与配置

建立数据库:

建数据库的方式:

①sql语句

②图形界面phpMyAdminNavicat

2d79aa7e6a60f418f80c149cc6d18675.png

或者:

8c97998fd18e82ed23ce432c4adc0fa2.png

(1)创建数据库和测试表

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 utf8mb4;

7ab94cbe56b590f0150e4a50ef40d48a.png

(2)数据库在laravel框架中的配置

在.env文件里面,

96909b7a8cd82ede92ea9dae4c7928c1.png

也可以在config目录下面的database.php文件里面配置。使用env函数,表示先从env文件里面获取,如果获取成功则使用,如果获取失败,则使用env函数的第二个参数。

注意:如果是php artisan serve方式启动的,修改了配置文件,则需要重新启动,才能读取修改后的配置文件;如果是wamp/lamp等环境则不需要重启。

(3)在Test控制器中引入DB门面;

3b2b59a496d03800a03def87f1a5b369.png

(4)定义增删改查需要的路由;

增加:/addget

删除:/delget

修改:/modget

查询:/selectget

089183efe85caebca8d182ffe5d2abfe.png

2、增加信息(insert)

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

insert(数组)可以同时添加一条或多条,返回值是布尔类型。

insertGetId(一维数组),只能添加一条数据,返回自增的id。

语法:DB::table(‘表名’) -> insert(); 连贯操作/链式操作

案例:分别使用两个函数往数据表中插入几条记录

8cb0ea5eb07dd5e30d84d8cb89df4685.png

3、修改数据( update)

数据修改可以使用update()、increment()和decrement()方法来实现。

①Update方法表示可以修改整个记录中的全部字段;

②Increment和decrement表示修改数字字段的数值(递增或者递减),典型的应用:记录登录次数、积分的增加;

案例:把id=1的名称,改名为‘张三丰’

->where()->update([ ])

注意:where方法之后可以继续调用where之类的方法。

-> where() -> where() -> where()… 这个语法是并且(and)关系语法。

-> where() -> orWhere() -> orWhere()… 这个语法是或者(or)关系语法。

Orwhere方法的参数与where一致。

Where参数顺序:

-> where(字段名,运算符,字段值)。例如id=1,则可以写成:where(‘id’,’=’,1),简写成

Where(‘id’,1);【只有=号可以简写。】

ab8b87c21f7b2dd1bfdaf16712f622fa.png

返回值,表示受到影响的行数:

b8dede34156417c3f8dae54df05bcf5b.png

案例:把id=1的用户年龄字段值加10;【了解】

DB::table(’ member’)->increment(‘age’); 每次+1

DB::table(’ member’)->increment(‘age’, 5); 每次+5

DB::table(’ member’)->decrement(‘age’); 每次-1

DB::table(’ member’)->decrement(‘age’, 5); 每次-5

c9128deb00b0db7d75e45940f2c1669a.png

4、查询数据(get)

(1)取出基本数据

案例1:获取member表中所有的数据

DB::table(‘member’)->get(); //相当于select * from member;

返回值是一个集合对象,

返回值:

完成遍历取出的数据:

81cdc7fbed3530f568ff9ed7e7162efa.png

注意:Get查询的结果每一行的记录是对象的形式,不是数组。

案例2:获取id<3的数据

->where()->get();

案例3:查询id>2且年龄<21

2cd9f69c4ad654bf604093e1ed783ef0.png

(2)取出单行数据

DB::table('member')->where('id','1')->first();//返回值是一个对象

等价于limit 1

(3)获取某个具体的值(一个字段)

DB::table('member')->where('id','1')->value('name');

(4)获取某些字段数据(多个字段)

$users = DB::table('member')->select('name', 'email')->get();

$users = DB::table('member')->select('name as user_name')->get();

(5)排序操作

DB::table('member')->orderBy('age','desc')->get();

(6)分页操作

DB::table('member')->limit(3)->offset(2)->get();

Limit:表示限制输出的条数

Offset:从什么地方开始

组合起来等价于limit 5,5

5、删除数据(delete)【了解】

在删除中,有两种方式:物理删除(本质就是删除)、逻辑删除(本质是修改)

数据删除可以通过delete函数和truncate函数实现,

delete表示删除记录;

truncate表示清空整个数据表;

DB::table(‘table_name’)->where(‘id’,‘1’)->delete();

例如:删除id小于3的记录

【补充:truncate】

语法:DB::table(‘member’) -> truncate();

6、执行原生的SQL语句(补充了解)

(1)执行原生查询语句

DB::select(“selec语句”);

(2)执行原生插入语句

DB::insert(“insert语句”);

(3)执行原生修改语句

DB::update(“update语句”);

(4)执行原生删除语句

DB::delete(“delete语句”);

(5)执行一个通用语句

DB::statement(“语句”);

本文同步分享在 博客“cwl_java”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值