Php Laravel准备后打印数据库sql
我有以下Laravel,5.4,DB query,它会生成一个错误: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在提供占位符的值以了解错误的来源
$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