检索一个列值列表
DB::table("tablename")->lists('mobile'); //5.3 及以上版本 lists 改为 pluck
返回
[
"13455556666",
"13455556667",
"13455556668",
"13455556669",
]
指定一个自定义的键列返回的数组
\DB::table('tablename')->lists('mobile','email');
返回
[
"aa@sina.com"=>"13022223335",
"bb@sina.com"=>"13022223336",
"cc@sina.com"=>"13022223337",
]
检索表中的所有行

$users = DB::table('users')->get();
foreach ($users as $user)
{
var_dump($user->name);
}
从表检索单个行

$user = DB::table('users')->where('name', 'John')->first();
var_dump($user->name);
检索单行单列--返回指定字段
DB::table('users')->where('name', 'John')->pluck('name');
返回数组 非字符串
["Jone"] 并不是返回 "Jone"
指定一个Select子句

$users = DB::table('users')->select('name', 'email')->get();
$users = DB::table('users')->distinct()->get();
$users = DB::table('users')->select('name as user_name')->get();
where

$users = DB::table('users')->where('votes', '>', 100)->get();
$users = DB::table('users')->where(['votes'=>100,'name'=>'zhangsan'])->get();
OR 

$users = DB::table('users')->where('votes', '>', 100)->orWhere('name', 'John')->get(); 

Where Between 

$users = DB::table('users')->whereBetween('votes', array(1, 100))->get(); 

Where Not Between 

$users = DB::table('users')->whereNotBetween('votes', array(1, 100))->get(); 

Where In With An Array 

$users = DB::table('users')->whereIn('id', array(1, 2, 3))->get(); 

$users = DB::table('users')->whereNotIn('id', array(1, 2, 3))->get(); 

Using Where Null To Find Records With Unset Values 

$users = DB::table('users')->where('parent_id',1)->whereNull('updated_at')->get(); 

Order By, Group By, And Having 

$users = DB::table('users')->orderBy('name', 'desc')->groupBy('count')->having('count', '>', 100)->get(); 

Offset & Limit 

$users = DB::table('users')->skip(10)->take(5)->get();
Joins
DB::table('users')
  ->join('contacts', 'users.id', '=', 'contacts.user_id')
  ->join('orders', 'users.id', '=', 'orders.user_id')
  ->select('users.id', 'contacts.phone', 'orders.price')
  ->get(); DB::table('users')
  ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
  ->get(); DB::table('users')
  ->join('contacts', function($join)
  {
  $join->on('users.id', '=', 'contacts.user_id')->orOn(...);
  })
->get();
//on 多个条件
DB::table('users')
  ->join('contacts', function($join)
  {
  $join->on('users.id', '=', 'contacts.user_id')->on(...);
  })
->get();
DB::table('users')   ->join('contacts', function($join)   {   $join->on('users.id', '=', 'contacts.user_id')   ->where('contacts.user_id', '>', 5);   })   ->get();
聚合
$users = DB::table('users')->count();
$price = DB::table('orders')->max('price');
$price = DB::table('orders')->min('price');
$price = DB::table('orders')->avg('price');
$total = DB::table('users')->sum('votes');
递增或递减一个列的值
DB::table('users')->increment('votes');
DB::table('users')->increment('votes', 5);
DB::table('users')->decrement('votes');
DB::table('users')->decrement('votes', 5);
指定额外的列更新
DB::table('users')->increment('votes', 1, array('name' => 'John'));
Inserts

DB::table('users')->insert(
array('email' => 'john@example.com', 'votes' => 0)
); $id = DB::table('users')->insertGetId(
array('email' => 'john@example.com', 'votes' => 0)
); 多个记录插入到表中 DB::table('users')->insert(array(
array('email' => 'taylor@example.com', 'votes' => 0),
array('email' => 'dayle@example.com', 'votes' => 0),
));
Updates
DB::table('users')
->where('id', 1)
->update(array('votes' => 1));
Deletes
删除表中的记录 DB::table('users')->where('votes', '<', 100)->delete(); 删除表中的所有记录 DB::table('users')->delete(); 清空一个表 DB::table('users')->truncate();
共享锁
DB::table('users')->where('votes', '>',
100)->sharedLock()->get(); 更新“锁”
DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();
\DB::connection()->getPdo()->exec($sql)
事务 使用匿名函数 任何一个异常都会触发回滚

        return \DB::transaction(function() use($user_params, $staff_params) {
//写管理员进入user表
$user_id = DB::table(User::TABLE_NAME)
->insertGetId($user_params);
if(!$user_id) throw new Exception("写入user表失败"); $staff_params[Staff::DB_FIELD_USER_ID] = $user_id;
$staff_id=DB::table(Staff::TABLE_NAME)
->insertGetId($staff_params);
if(!$staff_id) throw new Exception("写入staff表失败"); return $staff_id;
});
直接使用语句
$ret = DB::select("select * from tablename where id=123"); //返回一个二维数组
或者
$ret = DB::select("select * from tablename where id=?",[123]); //返回一个二维数组
使用命名绑定来执行查询
$results = DB::select('select * from users where id = :id', ['id' => 1]);

DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);
 
$deleted = DB::delete('delete from users');
DB::statement('drop table users');
 
//chunk()每次查n条
$student=DB::table("vipinfo")->chunk(2,function($students){ //每次查2条
var_dump($students);
if(.......) return false; //在满足某个条件下使用return就不会再往下查了
});
打印sql
\DB::connection()->enableQueryLog();#开启log
$aa = \DB::table(tablename)->first();
$log = \DB::getQueryLog();
dd($log);
//打印
array: [
=> array: [
"query" => "select * from `fuli_xwc_merchant` limit 1"
"bindings" => []
"time" => 29.27
]
]
手动使用事务

如果你想要手动开始事务从而对回滚和提交有一个完整的控制,可以使用 DB 门面的beginTransaction 方法:

DB::beginTransaction();
你可以通过 rollBack 方法回滚事务: DB::rollBack();
最后,你可以通过 commit 方法提交事务: DB::commit();
注意:使用 DB 门面的事务方法还可以用于控制查询构建器和 Eloquent ORM 的事务。

like

$users = DB::table('users')
->where('name', 'like', 'T%')
->get();
$users = DB::table('users')
->where('votes', '>=', 100)
->get(); $users = DB::table('users')
->where('votes', '<>', 100)
->get(); $users = DB::table('users')->where([
['status', '=', '1'],
['subscribed', '<>', '1'],
])->get();
$users = DB::table('users')
->where('votes', '>', 100)
->orWhere('name', 'John')
->get();
$users = DB::table('users')
->whereBetween('votes', [1, 100])->get();

  null

$users = DB::table('users')
->whereNull('updated_at')
->get();
$users = DB::table('users')
->whereNotNull('updated_at')
->get();

  从一张表中获取一行/一列

$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;//该方法将会返回单个 StdClass 对象: $email = DB::table('users')->where('name', 'John')->value('email');

DB:raw

\DB::table(\DB::raw("xl_channel_goods as a"))
->whereIn(ChannelGood::DB_FIELD_CHANNEL_GOODS_CODE, $codes)
->get([
'a.*',
\DB::raw("(select goods_name from xl_goods as b where a.goods_sn=b.goods_sn) as goods_name"),
\DB::raw("(select group_concat(upc) from xl_goods_upc as c where a.goods_sn=c.goods_sn group by c.goods_sn) as upc")
]);

  

laravel CURD的更多相关文章

  1. php laravel curD

    Laravel PHP Web开发框架 Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的 ...

  2. Laravel框架数据库CURD操作、连贯操作使用方法

    Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍.   Laravel是一套简洁.优雅的PHP Web开 ...

  3. 使用laravel一分钟搭建CURD后台页面

    配置即一切 一切皆于需求,后台从0开始搭建,但是写了一两个页面后发现太多的是对单表的增删改查操作,于是就想到了,能不能做一个快速搭建的后台.想到一句话,配置即一切.如果一个CURD后台能只进行配置就自 ...

  4. Laravel框架数据库CURD操作、连贯操作

    这篇文章主要介绍了Laravel框架数据库CURD操作.连贯操作.链式操作总结,本文包含大量数据库操作常用方法,需要的朋友可以参考下 一.Selects 检索表中的所有行 $users = DB::t ...

  5. Laravel框架数据库CURD操作、连贯操作总结

    这篇文章主要介绍了Laravel框架数据库CURD操作.连贯操作.链式操作总结,本文包含大量数据库操作常用方法,需要的朋友可以参考下 一.Selects 检索表中的所有行 复制代码代码如下: $use ...

  6. 使用laravel搭建CURD后台页面

    配置即一切 一切皆于需求,后台从0开始搭建,但是写了一两个页面后发现太多的是对单表的增删改查操作,于是就想到了,能不能做一个快速搭建的后台.想到一句话,配置即一切.如果一个CURD后台能只进行配置就自 ...

  7. Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法

    Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...

  8. 轻松搞定laravel的curd操作搞定简易留言版(四)

    一:目的开发laravel简易留言板 二:路由操作routes.php <?php //GET /msg/index 展示留言列表 //GET /msg/add 展示表单 //POST /msg ...

  9. Laravel框架使用查询构造器实现CURD

    一.什么是查询构造器? ①Laravel 查询构造器(query Builder)提供方便,流畅的接口,用来建立及执行数据库查找语法 ②使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不 ...

随机推荐

  1. 设计多选一按钮ChooseOnlyButton

    设计多选一按钮ChooseOnlyButton 效果: 源码: ChooseOnlyButton.h 与 ChooseOnlyButton.m // // ChooseOnlyButton.h // ...

  2. Python3.5 执行发邮件Exchangelib(=)

    fyl Python发邮件的代码如下: 只需要填写好加粗字体,即可正常使用. from exchangelib import DELEGATE, Account, Credentials, Messa ...

  3. python面试十题

    问题1: 请问如何修改以下python代码,使得下面的代码调用类A的show方法? class A(): def show(self): print("base show") cl ...

  4. Python成员运算符

    Python成员运算符 其他语言没有,是否包含运算符,主要应用在字符串或者集合中 测试实例中包含了一系列的成员,包括字符串,列表或元组. #使用场景01:字符串是否包含另外一个字符串? str01 = ...

  5. 基于easyui开发Web版Activiti流程定制器详解(六)——Draw2d的扩展(三)

    题外话: 最近在忙公司的云项目空闲时间不是很多,所以很久没来更新,今天补上一篇! 回顾: 前几篇介绍了一下设计器的界面和Draw2d基础知识,这篇讲解一下本设计器如何扩展Draw2d. 进入主题: 先 ...

  6. python第十四课--排序及自定义函数之案例二:冒泡排序

    案例二:冒泡排序 lt1=[45,12,56,-32,-3,44,75,-22,100] print('排序前:'+str(lt1)) 自定义函数:实现冒泡排序(升序)原则:1).有没有形参?有,接受 ...

  7. Jupyter Notebook的使用

    命令模式 (按键 Esc 开启) Enter : 转入编辑模式 Shift-Enter : 运行本单元,选中下个单元 Ctrl-Enter : 运行本单元 Alt-Enter : 运行本单元,在其下插 ...

  8. 如何查看MySQL执行的每条SQL

    1.登录数据库 [root@mysqltest1 ~]# mysql -uroot -p -h172.16.*.*(你数据库的IP) 2.查看是否开启general_log mysql> sho ...

  9. 课后实践之mybash20155314

    课后实践之mybash 实践要求 加分题-mybash的实现 使用fork,exec,wait实现mybash 写出伪代码,产品代码和测试代码 发表知识理解,实现过程和问题解决的博客(包含代码托管链接 ...

  10. bn两个参数的计算以及layer norm、instance norm、group norm

    bn一般就在conv之后并且后面再接relu 1.如果输入feature map channel是6,bn的gamma beta个数是多少个? 6个. 2.bn的缺点: BN会受到batchsize大 ...