数据库查询构造器 (query builder) 提供方便、流畅的接口,用来建立及执行数据库查找语法。在你的应用程序里面,它可以被使用在大部分的数据库操作,而且它在所有支持的数据库系统上都可以执行。 注意 Laravel 查询构造器使用 PDO 参数绑定,以保护应用程序免于 SQL 注入,因此传入的参数不需额外转义特殊字符。 Selects
更新表记录很简单,使用查询构建器的update方法即可: $affected = DB::table('users')->where('name','Laravel-Academy')->update(['password'=>'123']); 该方法返回受影响的函数。 3、删除数据 使用delete方法删除表记录,删除方法和更新方法类似,返回被删除的行数: $deleted = DB::table('users')->where...
Query Builder是一个非常易于使用但很强大的与数据库进行交互的方式。 从CURD到排序和过滤,Query Builder提供了方便的操作符来处理数据库中的数据。这些操作符大多数可以组合在一起,以充分利用单个查询。 Laravel一般使用DBfacade 来进行数据库查询。当我们执行DB的「命令」(、或者说「操作符」)时,Query Builder会构建...
The Laravel query builder can handle these as well:1DB::table('users') 2 ->where('name', '=', 'John') 3 ->orWhere(function($query) 4 { 5 $query->where('votes', '>', 100) 6 ->where('title', '<>', 'Admin'); 7 }) 8 ->get();...
Ίκαρος 架构师 @ 北京纬业信息科技有限公司
Laravel 数据库功能的核心就是提供流式接口与数据库进行交互的查询构建器(Query Builder),支持 MySQL、Postgres、SQLite 和SQL Server 等常见的数据库管理系统,没有特别说明的话,我们的所有教程都基于 MySQL。 注:关于流式接口可以查看流接口模式了解明细。 使用DB 门面执行原生 SQL 语句 如果你之前没有使用过任何 ...
之后在QueryBuilder的get方法里将结果集转换成了Collection对象返回给了调用者. 到这里QueryBuilder大体的流程就梳理完了,虽然我们只看了select一种操作但其实其他的update、insert、delete也是一样先由QueryBuilder编译完成SQL最后由Connection实例去执行然后返回结果,在编译的过程中QueryBuilder也会帮助我们进行防SQL注入。
这样我们就获取到了$users表的查询构建器,实际上,底层返回的是Illuminate\Database\Query\Builder的实例,我们对查询构建器的所有操作都是调用该实例对应类上的方法。下面我们就列举查询构建器的一些常用方法,我们还是沿用上一节创建的$users表做演示说明 。
下面是laravel里用的最多的写法:$users = DB::table('users')->where('type', 'donor')->get();这些是不是顺多了,一气呵成,要的就是这个感觉。为了演示查询构造器的功能用法,我们直接使用 DB 门面创建 QueryBuilder 对象。比如执行原生的语句:DB::statement('drop table users')还有参数绑定的方式传入...
// 如果模型保存成功,执行保存后的操作if($saved){$this->finishSave($options);}return$saved;}/*** 执行更新操作:updating事件、保存数据、updated事件** @param \Illuminate\Database\Eloquent\Builder $query* @return bool*/protectedfunctionperformUpdate(Builder$query){// 如果 updating 事件...