Laravel 5 Laravel 5.0,其中生贝壳状

Laravel 5 Laravel 5.0,其中生贝壳状,laravel-5,query-builder,Laravel 5,Query Builder,我使用的是Laravel5.0 我有这个: return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE '%?%'", ['test'])->get(); 它返回[] 当我将其更改为: return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE '%test%'")->get(); 它返回一个包含3个用户的数组 我在查询之前添加了以下内容: \DB:

我使用的是Laravel5.0

我有这个:

return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE '%?%'", ['test'])->get();
它返回
[]

当我将其更改为:

return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE '%test%'")->get();
它返回一个包含3个用户的数组

我在查询之前添加了以下内容:

\DB::listen(function($sql, $bindings) {
    var_dump($sql);
    var_dump($bindings);
});
我得到:

string(73) "select * from `users` where CONCAT(first_name, ' ', last_name) LIKE '%?%'"
array(1) {
  [0]=>
  string(4) "test"
}

我不知道我做错了什么。

您不应该在
占位符周围使用引号,它不应该是较长字符串的一部分。prepared语句用引号和/或反勾号围绕该值

这项工作:

return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE ?", ['%test%'])->get();

请注意,
是一个独立的值。执行查询时将添加引号。

您不应该在
占位符周围使用引号,它不应该是较长字符串的一部分。prepared语句用引号和/或反勾号围绕该值

这项工作:

return User::whereRaw("CONCAT(first_name, ' ', last_name) LIKE ?", ['%test%'])->get();

请注意,
是一个独立的值。执行查询时将添加引号。

它应该返回多少用户?我预计有3个用户。我想我刚刚得到它…很高兴知道它是Done。它应该返回多少用户?我希望有3个用户。我想我已经明白了…很高兴知道这是doneMan你的规则!!!这对我来说太完美了!!!我不知道你为什么没有投票权:(你统治的人!!!这对我来说很好!!!我不知道你为什么没有投票权:(