where(call_us-6ren">
gpt4 book ai didi

mysql - 将两个参数传递给嵌套的 where 会导致 "and ` ` is null"附加到查询

转载 作者:行者123 更新时间:2023-11-30 22:39:58 24 4
gpt4 key购买 nike

      if ($input['search']) {
$args = array($query, $input);
$query->where(call_user_func_array(function($query, $input) {
$query->where('tbl_products.name', 'LIKE', '%' . $input['search'] . '%')
->orwhere('sku', 'LIKE', '%' . $input['search'] . '%');
}, $args));
}
}
return $query;

上面是我的查询的一部分,我打算在其中创建一个类似于以下内容的嵌套 where 子句:

WHERE
m.name = 'name' AND
(p.name LIKE "% example %" or p.sku LIKE "% example %")

我已经使用“call_user_func_array”将多个参数传递给闭包(这是我可以将用户输入传递给 where 子句的唯一方法)。

不幸的是,我收到一个看起来有点像这样的查询异常:

Unknown column '' in 'where clause' ...name LIKE %example% or sku LIKE %example% and `` is null

and `` is null 已附加到末尾。我认为这与需要两个参数的原始 where 子句有关,但我正在努力解决它。任何帮助将不胜感激。

最佳答案

尝试这样的事情:

if ($input['search']) {
$query->where(function ($query) use ($input) {
$query->where('tbl_products.name', 'LIKE', '%' . $input['search'] . '%')
->orWhere('sku', 'LIKE', '%' . $input['search'] . '%');
});
}

您可以通过use 将变量传递给闭包。

引用:Anonymous Functions .

关于mysql - 将两个参数传递给嵌套的 where 会导致 "and ` ` is null"附加到查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31389713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com