首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过 Laravel 查询构建器实现简单的增删改查操作

    对象数组: 如果你想要进一步指定查询条件,此时就要考虑 SQL 语句的安全性,比如规避 SQL 注入攻击,尤其是这个查询条件是用户通过请求参数指定的。...查询记录 要查询指定数据表中的所有记录,可以通过以下方式实现: $users = DB::table('users')->get(); 该方法返回的是一个包含所有查询结果的 stdClass 集合:...如果要指定查询条件,可以通过 where 实现: $name = '学院君'; $users = DB::table('users')->where('name', $name)->get(); 使用查询构建器进行查询...上述代码返回的也是包含指定查询结果的 stdClass 集合: 有时候我们可能希望返回查询结果中的第一条记录,这可以通过将 get 方法替换为 first 方法来实现: $user = DB::table...更新记录 更新数据库记录通过 update 方法来完成,我们可以在该方法中传入待修改字段及对应修改值数组: $id = 11; $affectedRows = DB::table('users')->where

    4.8K20

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

    运行 Select 查询 你可以使用 DB Facade 的 select 方法来运行基础的查询语句我们在上面创建的路由里增加个 index 的路由 dump 是 laravel 的打印函数可以把它理解为...传递给 select 方法的第一个参数就是一个原生的 SQL 查询,而第二个参数则是需要绑定到查询中的参数值。通常,这些值用于约束 where 语句。参数绑定用于防止 SQL 注入。...select * from test where testId = :id', ['id' => 1]); dump($binding); } 查询构造器 Laravel 的数据库查询构造器为创建和运行数据库查询提供了一个方便的接口...Laravel 的查询构造器使用 PDO参数绑定来保护您的应用程序免受 SQL 注入攻击。因此没有必要清理作为绑定传递的字符串 注意:PDO 不支持绑定列名。...($data); } sql 中还有个 IN 的用法 laravel 中就是 whereIn() 第一个参数还是字段名第二个参数是数组 function getList() {

    3.8K20

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

    你一定有过这样的经历,从数据库获取指定查询结果后,以主键 ID 值为键,以某个字段值为值构建关联数组,以前,你可能不得不遍历查询结果构建数组才能解决这样的问题,在 Laravel 中,我们只需在查询构建器上调用...基本查询 基本查询 最基本的 WHERE 查询子句就是通过 where 方法进行简单查询了: DB::table('posts')->where('views', 0)->get(); # 此处等号可以省略...DB::table('posts')->where('views', '>', 0)->get(); DB::table('posts')->where('views', '', 0)->get...like查询 有时候我们可能会对字段进行模糊查询,尤其是字符串匹配的时候: DB::table('posts')->where('title', 'like', 'Laravel学院%')->get()...'users') ->where('options->language', 'en') ->get(); 如果属性字段是个数组,还支持通过 whereJsonContains 方法对数组进行包含查询

    31.6K20

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

     查询操作 基本查询操作 使用sql语句执行select查询操作 从数据表中取得所有的数据列 从表中查询单行/列 从数据表中分块查找数据列 从数据表中查询某一列的列表 聚集函数 指定select查询条件...使用sql语句执行插入 基本插入操作 更新操作 使用sql语句执行更新操作 基本更新操作 指定列的增减 删除操作 使用sql执行删除 基本删除操作 悲观锁 事务处理 查看日志记录 其它操作 在Laravel...查询操作 基本查询操作 使用sql语句执行select查询操作 $results = DB::select('select * from users where id = ?'..., 'like', 'T%') ->get(); where条件也可以使用数组提供: $users = DB::table('users')->where([ ['status','...),可以使用skip和take方法 $users = DB::table('users')->skip(10)->take(5)->get(); 插入操作 使用sql语句执行插入 插入操作与select

    6.7K30

    3分钟短文:Laravel查询构造器,告别手写SQL的艰苦岁月

    下面是laravel里用的最多的写法: $users = DB::table('users')->where('type', 'donor')->get(); 这些是不是顺多了,一气呵成,要的就是这个感觉...比如执行原生的语句: DB::statement('drop table users') 还有参数绑定的方式传入SQL语句: DB::select('select * from contacts where...写一条不附加任何约束条件的查询: $users = DB::table('users')->get(); 还有复杂的多表联合查询,使用 INNER JOIN 方式: DB::table('users')...举例一些常规的查询: $emails = DB::table('contacts')->select('email', 'email2 as second_email')->get(); select...')->get(); 多个约束条件的查询: $newVips = DB::table('contacts')->where('vip', true)->where('created_at', '>',

    1.5K10

    3分钟短文:Laravel查询构造器,告别手写SQL的艰苦岁月

    下面是laravel里用的最多的写法: $users = DB::table('users')->where('type', 'donor')->get(); 这些是不是顺多了,一气呵成,要的就是这个感觉...比如执行原生的语句: DB::statement('drop table users') 还有参数绑定的方式传入SQL语句: DB::select('select * from contacts where...写一条不附加任何约束条件的查询: $users = DB::table('users')->get(); 还有复杂的多表联合查询,使用 INNER JOIN 方式: DB::table('users')...举例一些常规的查询: $emails = DB::table('contacts')->select('email', 'email2 as second_email')->get(); select...')->get(); 多个约束条件的查询: $newVips = DB::table('contacts')->where('vip', true)->where('created_at', '>',

    2K11

    Laravel 5.3之 Query Builder 源码解析(中)

    语句时调用Connection::select()执行的,之前的Laravel版本是没有封装在闭包里而是先执行了连接操作,Laravel5.3是封装在了闭包里等着执行SQL语句再连接操作,应该是为了提高效率...// (new MySqlConnection)->table('users')->where('id', '=', 1)->get(); return DB::table('users')->...在这里也可看到如果想知道DB::tables('users')->where('id', '=', 1)->get()被编译后的SQL语句是啥,可以这么写:DB::tables('users')->where...// (new MySqlConnection)->table('users')->where('id', '=', 1)->get(); return DB::table('users')->...在这里也可看到如果想知道DB::tables('users')->where('id', '=', 1)->get()被编译后的SQL语句是啥,可以这么写:DB::tables('users')->where

    3.8K31

    3分钟短文:Laravel 使用DB门面操作原生SQL

    比如删除users表: DB::statement('drop table users'); 带参数绑定的SQL查询语句: DB::select('select * from contacts where..., [1]); 或者使用链式操作,获取所有满足条件的记录: $users = DB::table('users')->get(); 当然了,还有经常用到的多表联合查询,复杂的查询过滤条件: DB::table...扩展一下,带有查询条件的SQL原生语句, 为了防止SQL注入,使用参数绑定的方式: $usersOfType = DB::select('select * from users where type =..., [1, $id]); 当然了,删除语句仅仅需要where子句的条件参数绑定,其他与查询select无异: $countDeleted = DB::delete('delete from contacts..., [1]); 写在最后 本文通过对laravel DB门面的增删改查用法,向大家展示了基本的参数绑定的用法。

    2.6K20

    Laravel源码解析之QueryBuilder

    Database 查询构建器 上文我们说到执行 DB::table('users')->get()是由Connection对象执行table方法返回了一个QueryBuilder对象,QueryBuilder...这些数组里了,这些代码我就不贴在这里了,大家看源码的时候可以自己去看一下,下面我们主要来看一下get方法里都做了什么。...还是用我们之前的例子 DB::table('users')->where('name','James')->get(),在这个例子中QueryBuilder分别设置了 cloums(默认*)、 from...上面我们说过在执行 DB::table('users')->where('name','James')->get()时$wheres属性里的值是: public $wheres = [ [...然后在compileSelect方法里将这个由查查询语句里每部份组成的数组转换成真正的SQL语句: protected function concatenate($segments) { return

    2.1K50

    【Laravel系列4.5】主从库配置和语法生成

    Route::get('ms/test/insert', function(){ \Illuminate\Support\Facades\DB::connection('mysql2')->table...mysql2')->table('db_test')->get()->toArray()); }); Route::get('ms/test/list', function(){ dd( \Illuminate...\Support\Facades\DB::connection('mysql2')->table('db_test')->get()->toArray()); }); 在执行第一个路由之后,dd()...从这里我们可以看出,Laravel 是根据参数来判断是否使用从库连接进行查询的,而我之前看过其它框架的源码,是 Yii 还是 TP 什么来着,有根据查询语句是否有 SELECT 字符来判断走从库去查询的...其实我们在 查询构造器 那篇文章中就已经看到过 Laravel 是如何生成 SQL 语句了,还记得我们分析的那个 update() 方法吗?

    4.6K20
    领券