我是Laravel的新手,我想在Laravel 5中执行简单查询。我使用下面的函数插入数据
public function store12($inputs)
{
$this->name = $inputs['name'];
$this->email = $inputs['email'];
$this->text = $inputs['message'];
$this->save();
echo "<pre>"; print_r(dd(DB::getQueryLog()));
//echo DB::table('contacts')->toSql();
die;
}
并使用: - dd(DB :: getQueryLog())获取行查询,这将在下面给出原始查询: -
array:1
0 => array:3
"query" => "insert into `contacts` (`name`, `email`, `text`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?)"
"bindings" => array:5
0 => "shahjad"
1 => "shahjad.ahmadtimt@gmail.com"
2 => "xsxdxsda"
3 => "2016-06-13 12:17:43"
4 => "2016-06-13 12:17:43"
]
"time" => 33.0
]
]
其实我想这样查询: -
insert into `contacts` (`name`, `email`, `text`, `updated_at`, `created_at`) values ('shahjad', 'shahjad.ahmadtimt@gmail.com', 'xsxdxsda', '2016-06-13 12:17:43', '2016-06-13 12:17:43')"
这样我就可以直接将这个查询直接执行到phpmyadmin中,否则我必须在查询中提到这个耗时的值。
在Codeigniter中,当我们使用last_query方法时,它会显示一个没有数组的简单查询。我想和codeigniter一样。是否有可能
答案 0 :(得分:0)
使用 - &gt; tosql()
为例
dd(DB::select('users')->where('smthing',1)->get()->tosql());
修改强>
$test = DB::table('users')->insert(
['name' => $inputs['name'], 'email' => $inputs['email'], 'text' => $inputs['message']]
)->tosql();
或者你可以这样做
\DB::listen(function($sql) {
var_dump($sql);
});
或
你可以使用这个包,它会告诉你每个sql查询已经完成 laravel-debugbar
答案 1 :(得分:0)
您是否尝试过原始方法
$results = DB::select( DB::raw("
insert into `contacts`
(`name`, `email`, `text`, `updated_at`, `created_at`)
values
('shahjad', 'shahjad.ahmadtimt@gmail.com', 'xsxdxsda', '2016-06-13 12:17:43', '2016-06-13 12:17:43')
" ) );