精华内容
下载资源
问答
  • 今天小编就为大家分享一篇laravel 获取某个查询查询SQL语句方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • DB::enableQueryLog(); $last_month_cost = DB::table('ds_dwb_game_summary') ->where("userid","in",$tuple_uid) ->whereRaw("ds>={$start} and ds<...这样就可以看到所有的查询情况 ...
      DB::enableQueryLog();
      $last_month_cost = DB::table('ds_dwb_game_summary')
           ->where("userid","in",$tuple_uid)
           ->whereRaw("ds>={$start} and ds<= {$end}")
           ->sum('cost');
       dd(DB::getQueryLog());
    

    这样就可以看到所有的查询情况

    展开全文
  • DB::connection()-&gt;enableQueryLog();#开启执行日志 这是放在最...$count = DB::table(‘test’) //执行查询 -&gt;whereNull(‘deleted_at’) -&gt;where(‘id’, ‘=’, 3) -&gt;where(...

    DB::connection()->enableQueryLog();#开启执行日志 这是放在最头部
    $count = DB::table(‘test’) //执行查询
    ->whereNull(‘deleted_at’)
    ->where(‘id’, ‘=’, 3)
    ->where(‘Name’, ‘=’, ‘测试’)
    ->count();
    print_r(DB::getQueryLog()); //获取查询语句、参数和执行时间 (放在最后头)

    展开全文
  • laravel 获取查询查询SQL语句

    千次阅读 2018-08-28 17:06:33
    DB::connection()-&gt;enableQueryLog();#开启执行日志 $count = DB::table('test') //执行查询 -&gt;whereNull('deleted_at') -&gt;where('id', '=', 3) -&gt;w...
        DB::connection()->enableQueryLog();#开启执行日志
        $count = DB::table('test')     //执行查询
                    ->whereNull('deleted_at')
                    ->where('id', '=', 3)
                    ->where('Name', '=', '测试')
                    ->count();
        print_r(DB::getQueryLog());   //获取查询语句、参数和执行时间
    展开全文
  • 今天小编就为大家分享一篇laravel实现查询最后执行的一条sql语句的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇Laravel使用原生sql语句并调用的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • laravel 获取完整sql 带参数

    千次阅读 2019-02-22 12:10:20
    laravel中我们常常需要记录执行sql以便完成日志记录和监控,laravel有几种方法可以实现,我记录在这里,供大家参考 1使用toSql DB::table('user')-&gt;where('id', 1)-&gt;toSql(); 但是获取sql是...

    在laravel中我们常常需要记录执行sql以便完成日志记录和监控,laravel有几种方法可以实现,我记录在这里,供大家参考

    1使用toSql

    DB::table('user')->where('id', 1)->toSql();

    但是获取的sql是没有绑定参数的,参数都用?代替了,我们这里使用了

    利用 builder 的 getBindings 方法:

    $builder = DB::table('user')->where('id', 1);
    $bindings = $builder->getBindings();
    $bindings = array_map(function($a){
                return '\''.$a.'\'';
            },$bindings );
    $sql = str_replace('?', '%s', $builder->toSql());
    $sql = sprintf($sql, ...$bindings);
    dd($sql);

    这样可以得到带有参数的sql,我在原来基础上对参数添加了引号,看起来可以更完整,注意该方法只适用于查询语句,增删改请使用下面的方法

    2使用 getQueryLog(推荐!!)

     //开启日志
            DB::connection()->enableQueryLog();
    //执行你的sql
    //重组sql
    $bindings = DB::getQueryLog();
    
            $data = [];
            foreach ($bindings as $k=> $b){
    
                $bi  = $b['bindings'];
    
                $bi = array_map(function($a){
                    return '\''.$a.'\'';
                },$bi);
    
                $sql = str_replace('?', '%s', $b['query']);
                $sql2 = sprintf($sql, ...$bi);
    
                $data[$k] = $sql2;
            }
    
            return implode(';',$data);

    于前面的区别则是可以捕获单次内存执行的全部语句,包括增删改查,非常方便,推荐使用!

    3使用listen方法

    项目的App\Providers下拥有

    AppServiceProvider类

    在该类里的boot方法里可以监听任意位置执行的sql,捕获执行的参数

    public function boot()
    {
    DB::listen(function ($query) {
    // $query->sql//获取sql
    // $query->bindings//获取和sql关联的绑定参数
    // $query->time
    });
    }

    第三种有兴趣大家可以自行研究,后面如果我有空也会补充,如果写的有疏忽,还请指出,我会改正,共同进步!

    参考文章地址

    https://www.cnblogs.com/eleven24/p/9232737.html

    展开全文
  • laravel 获取执行的SQL

    千次阅读 2019-12-13 19:34:56
    注意引入命名空间 use Illuminate\Suuport\Facades\DB DB::enableQueryLog(); 执行语句 dd(DB::getQueryLog());
  • 将使用toSql(),DB ::enableQueryLog()和DB ::getQueryLog()在laravel 8中打印最后一个SQL查询。 因此,让我们看看下面的示例,并根据需要使用它们。 示例1: 控制器代码: <?php namespace App\...
  • 我们有时候想测试一段代码生产的 SQL 语句,比如:我们想看App\User::all();产生的 SQL 语句,我们简单地使用路由闭包做个实验: Route::get('/test-sql', function() { DB::enableQueryLog(); $user = App\...
  • laravel 查看原生sql语句的命令

    千次阅读 2018-12-15 18:21:20
    DB::connection()-&gt;enableQueryLog(); dd(DB::getQueryLog())
  • <?...DB::connection()->enableQueryLog(); // 开启查询日志 DB::table('xxx'); // 要查看的sql $queries = DB::getQueryLog... // 获取查询日志 print_r($queries); // 即可查看执行的sql,执行的时间,传入...
  • 今天小编就为大家分享一篇laravel 查询数据库获取结果实现判断是否为空,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • laravel获取执行的sql语句

    千次阅读 2018-08-14 14:22:38
    1.通过listen方法实现,一般是作为监听事件,加到服务里面。每次执行sql,输出对应的执行语句 ... echo ‘SQL语句执行:’.$sql.’,参数:’.json_encode($bindings).’,耗时:’.$time.’ms’; }...
  • 获取sql的方法为->toSql(),例如最简单的使用$sql = Robot::toSql(); 获取的结果select * from `robots` 可以加上限制函数的方式获取$sql = Robot::orderBy('db_order', 'desc')->toSql(); 结果select * ...
  • Thinkphp框架关于获取上一条执行的sql有封装好的函数getLastSql。 但是目前在使用laravel框架中,我还没有查到有相关的函数。但是laravel提供了其他的方法: 代码如下: DB::enableQueryLog(); $userin = DB::table...
  • laravel获取执行的sql语句

    千次阅读 2018-01-05 10:46:28
    执行的语句 dd(DB::getQueryLog()) 2,调用vendor\laravel\framework\src\Illuminate\Database\Query的toSql方法(Model类查询语句): $query->toSql(); 第二种方法: DB::enableQueryLog(); $sql = response()->...
  • * 在需要打印SQL的语句前添加监听事件。 */ function tosql(){ DB::listen(function($query) { $bindings = $query->bindings; $sql = $query->sql; foreach ($bindings as $replace){ ...
  • Laravel获取最近的SQL查询语句Queries

    万次阅读 2017-01-06 14:53:10
    可以通过下面代码获取最近执行的SQL查询语句: //Laravel 5 中需要开启QueryLogDB::connection()->enableQueryLog();//这里为查询操作print_r(DB::getQueryLog()) 也可以通过事件监听的方法来获取: ...
  • Laravel 原生查询查询构建器原生查询分页 首先说一下本人使用的版本: 5.5 在很多复杂查询时, 往往需要原生语句进行查询, 在 laravel 中, 我们可以这样使用原生查询  $user = DB::select('select * from users ...
  • 我正在尝试使用PDO和Laravel 5.5做一些陈述.public static function getNbCoach() {return DB::select('SELECT COUNT(*) FROM utilisateur WHERE id_statut = 2 AND actif = true');}结果是:array:1 [▼0 => {#...
  • laravel执行数据查询的时候,有的时候想查看sql 解析下看看表执行效率如何,以下仅供参考: 主要是执行表操作的时候引用enableQueryLog关键词,在打印DB::getQueryLog() 即可获取。 DB::connection()->...
  • laravel打印查询sql

    2021-07-10 07:05:46
    方法一(此方法支持 select 语句,...$sql = DB::table('my_table')->select()->tosql(); 方法二(此方法支持 select 语句,insert,delect,update不支持) : DB::connection()->enableQueryLog(); // ...
  • Laravel 存在SQL注入漏洞 漏洞描述: 该漏洞存在于Laravel的表单验证功能,漏洞函数为ignore(),漏洞文件位于/vendor/laravel/ramework/src/Illuminate/Validation/Rules/Unique.php。有时候开发者希望在进行字段...
  • 默认情况下,toSql 获取到的 sql 里面的参数使用 "?" 代替的,如下: DB::table('user')->where('id', 1)->toSql(); 得到的结果是:select*from`users`where`id` = ? 如果想得到具体的sql语句 $query= DB:...
  • laravel5 用DB自带的getQueryLog方法直接打印: DB::connection()->enableQueryLog(); // 开启QueryLog \App\User::find(1); dump(DB::getQueryLog()); 得到的结果语句与参数是分开的,非常不方便验证 [ 0 =>...
  • laravel 中自带的查询构建方法 toSql 得到的 sql 语句并未绑定条件参数,类似于这样select * fromuserswhereid= ?,所以写了个扩展包 laravel-dump-sql ,可以获取完整的 sql 语句。 源码 ...
  • use DB; //根据自己项目配置的DB服务引用 DB::connection()->enableQueryLog();#开启执行日志 var_dump(DB::getQueryLog());

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,557
精华内容 1,422
关键字:

laravel获取查询的sql