首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

laravel 学习之路 数据库操作 查询数据

select 方法将始终返回一个数组,数组中的每个结果都是一个 StdClass 对象,可以像下面这样访问结果值 function index() { $data = DB...Laravel 的查询构造器使用 PDO参数绑定来保护您的应用程序免受 SQL 注入攻击。因此没有必要清理作为绑定传递的字符串 注意:PDO 不支持绑定列名。...中就是 whereIn() 第一个参数还是字段名第二个参数是数组 function getList() { $data = DB::table('test')->whereIn...该方法返回一个 StdClass 对象,创建个 getRow 方法 路由就不多叙述了 function getRow() { $data = DB::table('test...当然 还可以将 test 表里 title 字段作为键名,describe 字段作为键值 返回 function getPluck(){ $titles = DB::table(

3.2K20

Laravel拼装SQL子查询的最佳实现

大家注意那个 IN 子句,其实是一个查询结果集,从另个表返回的。 写SQL真的很伤神,不如用框架自带的orm,操作起来非常人性化,拼装也很简单。那就抛出一个问题,Laravel如何实现上述的子查询?...对Laravel来说,简直不要太简单,你只要在写whereIn的时候,将数组使用闭包返回就可以了。...->get(); 然后我们需要定制的 array,用于包裹返回值数据,那么直接用闭包就是。...写在最后 本文通过一个SQL语句查询在Laravel中的实现方式,解释了laravel在拼装SQL查询时的自由度,使用起来非常灵活。...对于固定的查询方式,或者经过优化的SQL语句,你大可直接发送给Laravel直接运行以便提高效率。

3.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    跟我一起学Laravel-数据库操作和查询构造器

    使用sql语句执行插入 基本插入操作 更新操作 使用sql语句执行更新操作 基本更新操作 指定列的增减 删除操作 使用sql执行删除 基本删除操作 悲观锁 事务处理 查看日志记录 其它操作 在Laravel..., [1]); foreach ($results as $res) { echo $res->name; } 返回结果为数组,数组中每一个值为一个StdClass对象。...('status', '', 1) ->groupBy('status') ->get(); Join操作 内连接 Inner Join 使用join执行内连接操作,该函数第一个参数为要连接的表名...total_sales')) ->groupBy('department') ->havingRaw('SUM(price) > 2500') ->get(); 要限制查询返回的结果行数...); 这样不管什么操作都可以做了吧 另外含有两个方法,用于重新连接到指定数据库和断开连接 DB::reconnect('foo'); DB::disconnect('foo')d; ---- 参考: Laravel

    6.3K30

    通过 Laravel 查询构建器实现复杂的查询语句

    查询小技巧 我们首先来介绍几个 Laravel 自带的语法糖,可以帮助我们快速获取期望的查询结果,提高编码效率。...你一定有过这样的经历,从数据库获取指定查询结果后,以主键 ID 值为键,以某个字段值为值构建关联数组,以前,你可能不得不遍历查询结果构建数组才能解决这样的问题,在 Laravel 中,我们只需在查询构建器上调用...此外,有的时候,我们从数据库返回的结果集比较大,一次性返回进行处理有可能会超出 PHP 内存限制,这时候,我们可以借助 chunk 方法将其分割成多个的组块依次返回进行处理: $names = [];...使用该方法时,需要注意传递给 whereIn 的第二个参数不能是空数组,否则会报错。 同样,与之相对的,还有一个 whereNotIn 方法,表示与 whereIn 相反的查询条件。...where 条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积,如果带 where,返回的是匹配的行数。

    30.2K20

    laravel-nestedset:多级无限分类正确姿势

    嵌套集合模型 安装要求 PHP>=5.4 laravel>=4.1 v4.3版本以后支持Laravel-5.5 v4版本支持Laravel-5.2、5.3、5.4 v3版本支持Laravel-5.1 v2...对于v4.2.0版本不是自动开启transaction的,另外node的结构化操作需要在模型上手动执行save,但是有些方法会隐性执行save并返回操作后的布尔类型的结果。...$node->saveAsRoot(); // #2 显性 save $node->makeRoot()->save(); 添加子节点到指定的父节点末端或前端 如果你想添加子节点,你可以添加为父节点的第一个子节点或者最后一个子节点...()->pluck('id'); // 包含Category本身的id $categories[] = $category->getKey(); // 获得goods $goods = Goods::whereIn...isLeaf() 检查一致性 你可以检查树是否被破环 $bool = Category::isBroken(); 获取错误统计: $data = Category::countErrors(); 它将返回含有一下键的数组

    3.5K20

    泛微OA地址外发自定义接口、MySQL操作、Laravel入门

    前言 泛微OA使用的Laravel 这是其对接数据库的文档 https://laravelacademy.org/post/22012 位置 项目位置 D:\e-office_server_11.0\...; 查询列表 $users = DB::table('users')->select('name', 'email as user_email')->get(); distinct 方法允许你强制查询返回不重复的结果集.../whereNotIn/orWhereIn/orWhereNotIn whereIn 方法验证给定列的值是否在给定数组中: $users = DB::table('users')...->whereIn('id', [1, 2, 3]) ->get(); whereNotIn 方法验证给定列的值不在给定数组中: $users = DB::table('users...该方法接收两个参数:用于查询记录的条件数组和用于更新的列值对数组。 updateOrInsert 方法首先会尝试使用第一个参数的列值对匹配对应的数据库记录,如果记录存在,则通过第二个参数来更新它。

    2K30

    ThinkPHP5.1学习笔记 数据库操作

    ,返回 null,否则返回结果数组 V5.1.23+版本开始,支持findOrEmpty方法,当查询不存在的时候返回空数组而不是Null。...,如果结果不存在,返回空数组 如果希望在没有查找到数据后抛出异常可以使用 try{ //捕获异常 $data = Db::table('think_user')->where('status...} 默认情况下,find和select方法返回的都是数组,区别在于后者是二维数组。...'字段名/列名') // 返回数组 Db::table('think_user')->where('status',1)->column('name'); // 指定id字段的值作为索引 Db::table...('think_user')->where('status',1)->column('name','id'); 如果要返回完整数据,并且添加一个索引值的话,可以使用 // 指定id字段的值作为索引 返回所有数据

    2K10

    Laravel源码笔记(二)路由

    在这个match()函数中,laravel先查找当前请求方式下存储的所有路由(前面按请求方式作为索引存储的数组还记得不?...这里派上用场了),然后遍历这个集合,调用每个route的matches()接口,找到第一个返回true(即匹配)的路由就返回,并且把url中的请求参数保存到路由中。...仔细研究一下这条语句,发现采用了PREG_SET_ORDER模式得到的是一个子匹配结果的顺序索引数组(便于接下来的遍历)。...,说明最后pos至末尾也是一段静态文本,直接作为text属性存入tokens; 接着,遍历刚才得到的tokens数组,得到第一个可选参数的数组下标(hasDefault()中实际查找的是illumination...,再最后设置{tokens数组长度-第一个可选参数出现位置}个可选分组)?)?...,例如 (?:/(?P[^/]++)(?:/(? P[^/]++))?)?

    7.5K40

    laravel生成无限级分类

    尤其当分类数据和层级多时,一个糟糕的算法将使服务器不堪重负 以下用laravel实现无限级分类功能,包括: 数据表设计 填充模拟数据 生成分类树 分类树的后台维护 数据表设计 字段名 描述 id 主键id...目录树 场景1:查询蓝牙耳机的所有祖先类目 根据path字段的值获取其祖先id为[1, 2],用 Category::whereIn('id', [1, 2])->orderBy('level')->get...() 即可获取结果 场景2:查询手机配件的所有后代类目 将id字段追加到path字段,得到-1-, 用Category::where('path', 'like', '-1-%')->get() 即可获取结果...->push($this->name) // 追加当前类目的name字段到数组末尾 ->implode(' - '); // 用 - 符号将数组的值组装成一个字符串...数据填充结果 生成分类树 分类树是一个通用的功能,适合将其封装为一个服务,创建CategoryService类

    2.9K40

    基于 Redis 有序集合实现热门浏览文章排行榜

    今天我们以 Laravel 项目热门浏览文章排行榜为例进行实战演示。 准备模型类和数据表 开始之前,我们先创建文章表、模型类和控制器: ?...我们限定排行榜的大小是 10,即只显示浏览量最多的前十篇文章,这可以通过 ZREVRANGE 指令实现,对应到 Laravel 代码,我们需要在 PostController 中新增一个 popular...ID 排序一致 $posts = Post::whereIn('id', $postIds) ->select(['id', 'title', 'views']...toArray()); } 非常简单,通过 Redis 门面调用 zrevrange 方法来执行 ZREVRANGE 指令,并传入有序集合的键名、元素区间,由于集合中存储的元素是文章 ID,所以对于返回的结果...,还需要再次到数据库中去查询完整的文章记录,此外,我们还要按照传入的 ID 顺序对返回结果进行排序,否则数据库查询返回的结果顺序又变成基于 ID 值大小的排序了。

    1.8K40

    如何使用 Laravel Collections 类编写神级代码

    假设我们查询某些 API 接口并获取到如下以数组保存的结果集: <?...php // API 请求返回的结果 $data = [ ['first_name' => 'John', 'last_name' => 'Doe', 'age' => 'twenties'],...最后,我们还希望返回的结果为 一个字符串(single string),这样每个用户独占 一行(new line)。...让我们添加一个方法它会连接由数组提供的任意数量的字段并返回字符串结果: Collection::macro('toConcatenatedString', function ($fields = [],...又一个示例 现在让我们看下第二个示例,假设我们一个用户列表,我们需要基于角色(role)过滤出来,然后进一步如果他们的注册时间为 5 年或以上且 last name 以字母 A-M 开始的仅获取第一个用户

    2.2K20

    痛心的CodeIgniter4.x反序列化POP链挖掘报告

    注意924行调用了BaseBuilder下的whereIn方法,我们看一下这个方法做了一些什么操作。 ?...可以看到$key再次传入了_whereIn方法,我们看一下_whereIn方法都做了一些什么操作。 ? 随后直接放入$whereIn这么大的一个数组中,充当Where判断的Key值。...反序列化的结果CI框架是百分百会抛出异常的,如图: ? 再往下读下去也没有什么可以利用的价值了。...只是我们编写POC时,redirect()->withInput() && old(‘a’); 这种方式,我们需要注意反序列化的结果一定是一个数组,为了POC的通用性,笔者将该POC生成的返回结果为数组...attacker's MySQL IP address public $port = '3306'; # The attacker's MySQL Port public $database = 'laravel

    4.9K20
    领券