laravel的数据库操作(三种)_云别的博客-CSDN博客


本站和网页 https://blog.csdn.net/qq_35472880/article/details/80086170 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

laravel的数据库操作(三种)_云别的博客-CSDN博客
laravel的数据库操作(三种)
云别
于 2018-04-25 21:33:53 发布
1288
收藏
分类专栏:
php及Laravel框架
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35472880/article/details/80086170
版权
php及Laravel框架
专栏收录该内容
14 篇文章
0 订阅
订阅专栏
laravel中提供了DB facade(原始查找)、查询构造器和 Eloquent ORM三种操作数据库方式 1.新建数据表与连接数据库 1.1 新建数据表 学生表  CREATE TABLE IF NOT EXISTS student(   `id` INT AUTO_INCREMENT PRIMARY KEY,   `name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '姓名',   `age` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',   `sex` TINYINT UNSIGNED NOT NULL DEFAULT 10 COMMENT '性别',   `created_at` INT NOT NULL DEFAULT 0 COMMENT '新增时间',   `updated_at` INT NOT NULL DEFAULT 0 COMMENT '修改时间' )ENGINE=INNODB DEFAULT CHARSET = UTF8 AUTO_INCREMENT=1001 COMMENT='学生表'; 1.2连接数据库 config/database.php 注意观察database.php 中表前缀 .env 以及.env中的部分参数配置 DB_HOST=localhost //host DB_DATABASE=laravel //数据库名字 DB_USERNAME=root //账号 DB_PASSWORD=root //密码 2.使用DB facade实现CURD //insert插入 //$bools = DB::insert('insert into  student (name,age) values(?,?)',['imooc',19]); //update更新 //$numbers = DB::update('update student set age = ? where name = ?',[20,'sean']); //var_dump($numbers); //查询 //$students = DB::select('select * from student where id >?',[1001]); //dd($students);//格式化的输出,更加美观 //删除 $num = DB::delete('delete from student where id > ?',[1001]); var_dump($num); 2.查询构造器 2.1查询构造器简介及新增数据 laravel查询构造器(query builder)提供方便、流畅的接口, 用来建立及执行数据库查找语法 使用pdo参数绑定,以保护应用程序免于SQL注入,因此传入的 参数不需要额外的转义特殊字符 基本可以满足所有的数据库操作,而且在所有支持的数据库 系统上都可以执行 新增数据 //插入 //$bool = DB::table('student')->insert( // ['name'=>'imooc','age'=>18] // ); //var_dump($bool); //$id = DB::table('student')->insertGetId( // ['name'=>'sean','age'=>18] // ); //var_dump($id); //多个参数的插入 $bool = DB::table('student')->insert([ ['name'=>'name1','age'=>18], ['name'=>'name2','age'=>19] ]); var_dump($bool); 2.2使用查询构造器更新数据 @1更新为指定的内容、 @2自增以及自减 //更新数据要带上条件where //$num = DB::table('student') //->where ('id',1004) //->update(['age'=>30]); //var_dump($num); //自增 //$num = DB::table('student')->increment('age'); //$num = DB::table('student')->increment('age',3); //自减 //$num = DB::table('student')->decrement('age',3); //$num = DB::table('student') //->where('id',1004) //->decrement('age',3); //自增的同时修改其他的参数 $num = DB::table('student') ->where('id',1004) ->increment('age',1,['name'=>'iimooc']); var_dump($num); 2.3使用查询构造器删除数据 @1 delete //删除一行 //$num = DB::table('student') //->where('id',1004) //->delete(); //删除符合条件的多行 //$num = DB::table('student') //->where('id','>=',1005) //->delete(); //var_dump($num); @2 truncate//很危险一般不建议用TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。 正因为上述原理,如果有ROLLBACK语句,DELETE操作将被撤销,但TRUNCATE不会撤销。 //DB::table('student')->truncate(); //这个操作不返回任何的东西 2.4使用查询构造器查询数据 @1 get() //get()获取表的所有数据 //$students = DB::table('student')->get(); @2 first() //first()获取结果中的第一条数据 //$students = DB::table('student') //->orderBy('id','desc') //->first(); @3 where() //where //$students = DB::table('student') //->where('id','>=','1002') //->get(); //where加多个条件 //$students = DB::table('student') //->whereRaw('id>=? and age >?',[1001,18]) //->get(); //dd($students); @4 pluck() //pluck返回结果集中的指定字段 //$name = DB::table('student') //->pluck('name'); @5 lists() //lists 可以指定返回某个键作为下标 //$name = DB::table('student') //->lists('name','id'); @6 select() //select //$students = DB::table('student') //->select('id','name','age') //->get(); @7 chunk() //chunk分段进行获取,真实项目中会一次插入一千条 //可以加入return false让语句进行停止 echo '<pre>'; DB::table('student')->chunk(2,function($students){ var_dump($students); //一般配合if条件使用 //return false; }); 2.5查询构造器中的聚合函数 @1 count()$num = DB::table('student')->count(); @2 max()$max = DB::table('student')->max('age'); @3 min()$min = DB::table('student')->min('age'); @4 avg()$avg = DB::table('student')->avg('age'); @5 sum()$sum = DB::table('student')->sum('age'); 3.Eloquent ORM 3.1Eloquent ORM简介、模型的建立以及查询数据 @1 Eloquent ORM的简介 laravel所自带的Eloquent ORM是一个优美简洁的ActiveRecord实现,用来实现数据库操作 每个数据表都有一个与之相应的“模型”(Model)用于和数据表交互 @2 模型的建立 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { //指定表名 protected $table = 'student'; //指定主键 protected $primaryKey = 'id'; } @3 Eloquent ORM中的查询 #1 all(),find(),findOrFail() #2 查询构造器在ORM中的使用 //all() //$students = Student::all(); //find() //$student = Student::find(1001); //findOrFail()根据条件查找,没有找到就报错 //$student = Student::findOrFail(1006); //get //$student = Student::get(); //where and first //$students = Student::where('id','>=','1001') //->orderBy('age','desc') //->first(); //chunk //echo '<pre>'; //Student::chunk(2,function($students){ // var_dump($students); //}); //聚合函数 count max min 等等 //$num = Student::count(); $max = Student::where('id','>=',1001) ->max('age'); var_dump($max); //dd($students); 3.2Eloquent ORM中新增数据、自定义的时间戳以及批量赋值的使用 @1 通过模型新增数据(设计到自定义时间戳) Model中的修改 //指定允许批量赋值的字段 protected $fillable = ['name','age']; //指定不允许批量赋值的字段 protected $guarded = []; //关闭显示创建和修改时间(自动维护时间戳)一般打开 public $timestamps = true; //让时间显示成为unix时间戳  protected function getDateFormat() { return time(); } protected function asDateTime($val) { return $val; } @2 使用模型的Create方法新增数据(涉及到批量赋值) //使用模型新增数据 //$student = new Student(); //给模型赋值 //$student->name = 'seanaq'; //$student->age = 18; //用来保存 //$bool = $student->save(); //dd($bool); //$student = Student::find(1009); //echo $student->created_at; //echo date('Y-m-d H-i-s',$student->created_at); //使用模型的Create方法新增数据 //$student = Student::create( // ['name'=>'imooc','age'=>18]); //dd($student); //firstOrcreate()以属性查找,若没有则新增实例 //$student = Student::firstOrcreate( // ['name'=>'imoocs'] // ); //firstOrNew()以属性查找,若没有则新增实例.需要保存的话自己调用save() $student = Student::firstOrNew( ['name'=>'imoocss'] ); $bool = $student->save(); dd($bool); 3.3使用Eloquent ORM修改数据 @1 通过模型更新 //$student = Student::find(1011); //$student->name = 'kitty'; //$bool = $student->save(); //var_dump($bool); @2 结合查询语句批量更新 $num = Student::where('id','>',1009)->update( ['age'=>41] ); var_dump($num); 3.4使用Eloquent ORM删除数据 @1 通过模型删除 //$student = Student::find(1012); //$bool = $student->delete(); //var_dump($bool); @2 通过主键值删除 //删除单个 //$num = Student::destroy(1007); //删除多个 //$num = Student::destroy(1008,1009); //也可以写在数组中 //$num = Student::destroy([1004,1005]); //var_dump($num); @3 根据指定条件删除 $num = Student::where('id','<',1002)->delete(); var_dump($num);  
云别
关注
关注
点赞
收藏
打赏
评论
laravel的数据库操作(三种)
laravel中提供了DB facade(原始查找)、查询构造器和Eloquent ORM三种操作数据库方式1.新建数据表与连接数据库1.1 新建数据表学生表 CREATE TABLE IF NOT EXISTS student(  `id` INT AUTO_INCREMENT PRIMARY KEY,  `name` VARCHAR(255) NOT NULL DEFAULT '...
复制链接
扫一扫
专栏目录
PHP开发框架Laravel数据库操作方法总结
10-25
主要介绍了PHP开发框架Laravel数据库操作方法总结,包含Select查询、Insert语句、update语句、Delete语句、事务等,需要的朋友可以参考下
常见数据库表操作
最新发布
weixin_56489753的博客
10-31
常见数据库表操作
一、清空数据表的三种方式
二、复制表
三、修改表
参与评论
您还未登录,请先
登录
后发表或查看评论
[laravel]laravel的几种操作数据库方法
j_xx4409的博客
06-29
133
一、Model使用法
在需要的地方引入 你写好model
use App\Models\mend\TeacherRepairApprove;
直接静态访问
TeacherRepairApprove::add($params);
<?php
namespace App\Models\mend;
use Illuminate\Database\Eloquent\Model;
class TeacherRepairApprove extends Model
protected $t
Laravel操作数据库的三种方式总结归纳
小青蛙的博客
10-08
3315
国庆这几天都在外面浪,马上要上班了,该收心了,趁今天有些空闲的时间,静下心总结下Laravel操作数据库的三种方式,以作资料和参考:(三种方式:DB façade 、 查询构造器、 Eloquent ORM )
目录
一、使用DB façade(原始查找)操作数据库
二、使用查询构造器操作数据库(核心)(重要)
三、Eloquent ORM操作数据库
详细目录结构:
一、使用DB ...
laravel5.5之模型操作数据库 — Eloquent ORM(实践)
追风2019
11-19
4765
一、背景
Laravel操作数据库有三种方式,一种是用DB类操作原生sql,一种是用构造器查询,还有一种是Laravel里独特的模型操作方式,即Eloquent ORM。前两种的操作方式可以参考:https://blog.csdn.net/zls986992484/article/details/52824962,这篇博文也有总结Eloquent ORM,只是为了总结学习,写篇博...
Laravel基础篇学习笔记(二):数据库操作
Vision.Z的博客
02-07
2147
1)DB facade(原始查找)2)查询构造器3)Eloquent ORM
Laravel开发之Laravel数据库操作
weixin_40489411的博客
04-15
665
Laravel连接数据库
修改主目录下的.env 和 config/database.php 配置文件
//.env
DB_CONNECTION=mysql //数据库类型
DB_HOST=127.0.0.1 //ip , localhost
DB_PORT=3306//端口
DB_DATABASE=laravel //数据库名
DB_USERNAME=root //用户
DB_PASSWORD=root//密码
//config/databas
Laravel 数据库常用的几个操作命令
知识无价,热爱无价。
07-01
190
Laravel 数据库常用的几个操作命令
laravel7 增删改查
肥茹的博客
07-19
710
创建控制器
php artisan make:controller SqlController
获取单条数据
$a = DB::table('users')->where(['id'=>3])->first();
获取多条数据
$a = DB::table('users')->select();
更新数据
$bool = DB::table('users')->where('id', 2)->update(['email' => 'fe
HBase基础笔记
donger__chen的博客
11-05
131
HBASE
hbase特点
hbase是一种基于hdfs的NoSQL数据库,弥补了hdfs无法随机写的缺陷。
hbase的基本概念
命名空间(namespace)
hbase没有databse的概念,namespace类似database;
hbase自带两个namespace:hbase和default,hbase用户存储hbase的内置表(metadata),default用于存储创建时未指定namespace的表
列族(column family)
一个或多个列的集合,底层存储时,相同列
JavaWeb之 MySQL基础:DDL、DML、DQL
小业的编程空间^ 0 ^
11-03
157
数据库
一、数据库的基本概念
1)数据库的英文单词:DataBase 简称:DB
2)数据库就是 用于存储和管理数据的仓库、
3)数据库的特点:
①持久化存储数据,其实数据库就是一个文件系统
②方便存储和管理数据
③使用了统一的方式操作数据库(SQL)
4)常见的数据库的软件:
MySQL:开源免费的数据库,小型的数据库,已经被Oracle收购了。MySQL6.x版本也开始收费
Oracle:收费的大型数据库。Oracle公司的产品。Oracle收购SUN公司,收购MySQL
DB2:IBM公司的数据库产品
laravel sql操作
yys3155的专栏
04-28
2251
一、Selects
检索表中的所有行
复制代码 代码如下:
$users = DB::table('users')->get();
foreach ($users as $user)
var_dump($user->name);
从表检索单个行
复制代码 代码如下:
$user = DB::table('users')->where('name', 'J
Laravel的ORM模型的find(),findOrFail(),first(),firstOrFail(),get(),list(),toArray()之间的区别是什么?
lixing1359199697的博客
05-29
3万+
find(id)需要一个id并返回一个模型。如果不存在匹配的模型,则返回null。findOrFail(id)需要一个id并返回一个模型。如果不存在匹配的模型,则返回null。findOrFail(id)需要一个id并返回一个模型。如果不存在匹配的模型,则返回null。
findOrFail(id)需要一个id并返回一个模型。如果不存在匹配的模型,则会引发错误, 它会抛出一个erro...
laravel框架操作数据库
laxexue的博客
08-03
679
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class StudentController extends Controller
public function test1()
//查询
/*$result = DB::SELECT('SEL...
larval php mysql_PHP laravel系列之数据库
weixin_35054319的博客
02-17
33
一、数据库简介Laravel 对主流数据库系统连接和查询都提供了很好的支持,尤其是流畅的查询语句构造器。Laravel 支持四种类型的数据库:- MySQL- Postgres- SQLite- SQL Server本系列教程选用了 mysqlLaravel 应用程序的数据库配置文件放置在 config/database.php 文件中。在这个配置文件内你可以定义所有的数据库连接,以及指定默认使用...
Laravel学习笔记(四)---操作数据库--原生SQL语句
tiansan的博客
04-01
8661
Laravel支持多种数据库,包括MySQL、Postgres、SQLite和SQL Server,在Laravel中连接数据库和查询数据库都非常简单,我们可以使用多种方式与数据库进行交互,包括
原生SQL语句、查询构建器以及Eloquent ORM。
本节我们先演示如何使用原生SQL在Laravel应用中对数据库进行增删改查。
原生SQL语句
DB::select('se
Laravel学习笔记2,数据库操作
kkoang的博客
05-10
95
1、数据库表的创建与配置
按照MVC的架构,对数据的操作应该放在Model中完成,但如果不使用Model,我们也可以用laravel 框架提供的DB类操作数据库。而且,对于某些极其复杂的sql,用Model
已经很难完成,需要开发者自己手写sql语句,使用DB类去执行原生sql。laravel 中DB类的基本用法DB::table('tableName')获取操作tableName表的实例。
(1)创建数据库和测试表
create table member(
id int primary k
【Laravel】连接 sqlite 数据库 Database [xxx] not exist
星辰大海
08-09
1600
.env 文件
DB_CONNECTION=sqlite
VIRSH_SQLITE_DATABASE=database_path('database.sqlite')
config/database.php 文件
'sqlite' => [
'driver' => 'sqlite',
'database' => env('VIRSH_SQLITE_DATABASE...
Laravel数据库操作的三种方式
热门推荐
倾城一笑stu
10-15
12万+
Laravel提供了3种操作数据库方式:DB facade(原始方式)、查询构造器和Eloquent ORM。下面我将逐一讲解。
数据库的配置文件在config目录下的database.php里。打开这个文件,找到mysql的配置项。
这里有个env,它其实是调用了laravel根目录下的.env文件,这个文件存储了数据库的配置信息。打开它。修改为项目的数据库信息即可。
laravel数据库常用方法
xiaobo0134的专栏
05-30
106
1.简单的数据库插入的方法;
$dbData = ActivityModel::query()->insert($param);
//第二种返回插入对象 ----$dbData
$dbData = (new ConfigHome())->create($param_new);
2.简单的数据库表更新方法:
/**
* 更新数据库如果更新内容一样的...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
云别
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
153
原创
3万+
周排名
165万+
总排名
22万+
访问
等级
3436
积分
59
粉丝
167
获赞
73
评论
293
收藏
私信
关注
分类专栏
mysql
5篇
git
1篇
微信第三方平台
1篇
docker
1篇
php及Laravel框架
14篇
java基础(高级)
17篇
other
7篇
ide
6篇
JavaWeb
46篇
SSM框架
24篇
linux
6篇
springBoot
12篇
springData
4篇
Vue
3篇
Dubbox
1篇
ABAP/4
4篇
最新评论
Idea在debug模式下,直接停止程序(不执行断点后的代码)
征途黯然.:
感谢博主,你的文章让我得到一些收获!( ̄ˇ ̄)
Idea在debug模式下,直接停止程序(不执行断点后的代码)
妍妍叫我肉肉:
这个功能太坑了,找了半天,发现是IDEA的锅
Idea在debug模式下,直接停止程序(不执行断点后的代码)
阿噜:
如果是在一个事务中的,希望抛出一个异常让事务回滚怎么办
Windows字体拯救计划(雅黑+monaco+mactype)
airyv:
大佬,能补一下链接吗?
SpringBoot项目启动找不到主类或无法加载主类
有你不苦:
试过了,还是找不到加载类
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
vue项目不能使用localhost访问
阿里云build前端项目被kill
使用LocalDateTime来代替Date
2020年2篇
2019年32篇
2018年120篇
目录
目录
分类专栏
mysql
5篇
git
1篇
微信第三方平台
1篇
docker
1篇
php及Laravel框架
14篇
java基础(高级)
17篇
other
7篇
ide
6篇
JavaWeb
46篇
SSM框架
24篇
linux
6篇
springBoot
12篇
springData
4篇
Vue
3篇
Dubbox
1篇
ABAP/4
4篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
云别
感谢认可,给个棒棒糖吧~
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值