首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel -你如何选择喜欢的地方?

Laravel -你如何选择喜欢的地方?
EN

Stack Overflow用户
提问于 2015-01-09 23:32:18
回答 3查看 34.4K关注 0票数 3

如果我尝试WHERE email = ?,它可以工作,但如果我尝试下面的代码,它不会。有什么想法吗?谢谢。

代码语言:javascript
运行
复制
DB::connection('operator')->select("SELECT * FROM users WHERE email LIKE '%?%'", array('test'));

这就是getQueryLog()的样子。

代码语言:javascript
运行
复制
  array(3) {
    ["query"]=>
    string(213) "SELECT * FROM users WHERE email LIKE '%?%'"
    ["bindings"]=>
    array(1) {
      [0]=>
      string(1) "test"
    }
    ["time"]=>
    float(1.45)
  }
EN

回答 3

Stack Overflow用户

发布于 2015-01-09 23:36:23

您必须将%放入绑定数组中:

代码语言:javascript
运行
复制
DB::connection('operator')
    ->select("SELECT * FROM users WHERE email LIKE ?", array('%test%'));

而且,只使用Laravel的Eloquent ORMQuery Builder要容易得多

例如,这是使用查询构建器时的样子:

代码语言:javascript
运行
复制
DB::connection('operator')->table('users')->where('email', 'LIKE', '%test%')->get();

使用用户提供的字符串时,请记住以转义任何%!如下所示:

代码语言:javascript
运行
复制
$escapedInput = str_replace('%', '\\%', $input);
票数 23
EN

Stack Overflow用户

发布于 2019-09-11 02:17:47

它非常适合我在laravel 5.7上使用,如下所示:

代码语言:javascript
运行
复制
$name = "the value that you want to find in the column";
Model::where("field", "LIKE", "\\" . $name . "%")->get()

$name是要在与"%“连接的列中查找的字符串的一部分

"field"是您可以输入"%“而不是"\”的列的字段(%所有字符)

代码语言:javascript
运行
复制
$TheResult = MyModel::where("myFieldOfMyModel", "like", "%" . $name . "%")->get();

它在laravel 5.7上非常适合我

谢谢

票数 7
EN

Stack Overflow用户

发布于 2017-02-21 23:54:23

只要转义你的变量就行了:

代码语言:javascript
运行
复制
$name = "_";
Model::where("field", "LIKE", "\\" . $name . "%")->get()

希望这对某些人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27863956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档