Php Laravel准备后打印数据库sql

Php Laravel准备后打印数据库sql,php,sql,laravel,laravel-5,Php,Sql,Laravel,Laravel 5,我有以下Laravel,5.4,DB query,它会生成一个错误: $item = \DB::select("SELECT :id FROM :tab WHERE :id1 = :value",['id' => $parameters[3],'id1' => $parameters[3],'tab' => $parameters[2],'value' => $value]); 我需要知道在准备之后和执行之前打印SQL语句的方法。i、 e在提供占位符的值以了解错误的来源

我有以下Laravel,5.4,DB query,它会生成一个错误:

$item = \DB::select("SELECT :id FROM :tab WHERE :id1 = :value",['id' => $parameters[3],'id1' => $parameters[3],'tab' => $parameters[2],'value' => $value]);
我需要知道在准备之后和执行之前打印SQL语句的方法。i、 e在提供占位符的值以了解错误的来源之后

我尝试使用
DB::connection()->enableQueryLog()如下所示:

\DB::connection()->enableQueryLog();
                $item = \DB::select("SELECT :id FROM :tab WHERE :id1 = :value",['id' => $parameters[3],'id1' => $parameters[3],'tab' => $parameters[2],'value' => $value]);
                dd(DB::getQueryLog());
它不会执行任何操作和sql错误,例如:

SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本的语法是否正确?在哪里 在第1行(SQL:SELECT:id FROM:tab,其中:id1=:value)


DB
类是否有打印语句及其值的方法?i、 e我需要查看值而不是

尝试将所有注入的参数转储到查询中,它可能是空值或不带引号的字符串值

一般来说,我建议您使用Laravel的查询生成器,它更简单,其错误更具指示性:

DB::table($parameters[2])
    ->select([$parameters[3]])
    ->where($parameters[3], $value)
    ->get();

您使用的是什么版本的laravel 5?@RossWilson版本5.4