Laravel DB类操作数据库
laravel支持的数据库类型
MySQL
Pgsql
SQLite
SQL Server
laravel操作数据库所使用的扩展 pdo,一定要开启pdo扩展
配置连接数据库信息
在laravel中修改连接数据库的文件有两处
修改 .env文件
修改config/database.php文件。
laravel5.4之后对我们的数据库的编码就进行了默认改变,默认使用 utf8mb4
创建数据库
修改.env文件来连接数据库
通过配置后,发现,如果我们的数据表有前缀的话,在.env文件中不能去设置
到此我们的数据库的配置就完成了
注:表前缀,如果有则添加,没有可以不修改。
检查是否配置好
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]);
定义路由
创建控制器
php artisan make:controller MydbController
数据表
控制器
DB构建器操作数据库
查询(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();
定义路由
控制器
添加数据操作(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'],
]);
修改数据(update)
$ret = DB::table('member')-where('id', 2)-update([
'name' = '修改一下',
'age' = 50
]);
删除数据(delete)
// 删除数据
$ret = DB::table('member')-where('id',2)-delete();
Laravel DB类操作数据库 相关文章
「Groovy」- 操作 HTML 文档 @20210209
问题描述 在 Jenkins Pipeline 中,我们需要对 HTML 文档进行多种操作。之前使用 XMLParser 及 XMLSlurper 库操作 HTML 文档时遇到很多问题,因为 HTML 文档结构松散(比如没有结束标签等等),不是标准的 XML 文件,因此导致 XML 解析失败。 该笔记将整理:
Laravel 视图
视图的用途是用来存放应用程序中 HTML 内容,并且能够将你的控制器层与展示层分开。 我们在控制器中使用助手函数【 view() 】来加载视图模板。 视图目录位置与命名 分配数据到模板 view(模板文件名称,关联数组)view(模板文件名称,compact('变量名1','变量名2
Laravel 表单验证
参考: https://learnku.com/docs/laravel/5.6/validation/1372 表单验证是为了防止访问者跳过客户端验证而造成的系统安全问题,一但非法用户绕过客户端验证而服务器端没有加以验证,这样就是很不安全了,所以项目必须要进行服务器端表单验证。 Laravel 提供
querydsl使用说明( jira插件里,查询数据的时候,可以使用jira内置的querydsl或者官方封装的工具包atlassian-pocketknife-querydsl来实现jira数据库表和插件表的联合查询)
概述 在jira插件开发过程中,数据库表的创建和数据的增删改查操作是使用ActiveObject模块完成的。但是,ao模块只能操作插件生成的表,无法和jira的内置表做关联查询操作。 然而作为jira的插件,很多时候,数据是需要和jira的数据进行关联查询的。 jira内置的
【Azure Redis 缓存】遇见Azure Redis不能创建成功的问题:至少一个资源部署操作失败,因为 Microsoft.Cache 资源提供程序未注册。
问题描述 在中国区微软云上创建Redis失败。收到的错误消息为: { "code": "DeploymentFailed", "message": "至少一个资源部署操作失败。请列出部署操作显示详细信息。有关用法详细信息,请参阅 https://aka.ms/DeployOperations。", "details": [ { "code":
力扣
原题 以下是我的代码,就是简单的字符串操作,ac但背离了题目,因为我之前没接触过trie 1 class Trie: 2 3 def __init__(self): 4 """ 5 Initialize your data structure here. 6 """ 7 self.trie = set() 8 9 def insert(self, word: str) - None:10 """11
使用python+flask 搭建web 项目(一) :操作本地mysql数据库
一、 先安装Mysql 到本地: 安装,配置,创建用户名,密码 设置端口号后 待创建链接时使用; 二、安装PyCharm(这个编辑器写python 比较方便); 配置环境变量; 三、进行项目创建 1. 打开pycharm,创建flask项目: File --New Project.. --- 网上的资料上大
判断字节字数
首先要明确的是在我们写入到数据库db中的字段的长度varchar(10),这个10是代表是十个字节 1字节(Byte)=8字位bai=8个二du进制zhi数1字位(bit)=1个二进制数1B=8b1KB=1024B1MB=1024KB1GB=1024MB 通常情况下,把baiB称为字节、b称为字位、KB称为千字节、MB称
CompletionService--实现take和poll的并行操作
CompletionService实际上可以看做是Executor和BlockingQueue的结合体。CompletionService在接收到要执行的任务时,通过类似BlockingQueue的put和take获得任务执行的结果。 CompletionService的一个实现是ExecutorCompletionService,ExecutorCompletionServi
Python3 并发编程之进程操作
运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现并发效果。 1.multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地