gpt4 book ai didi

php - Laravel (5.1) 查询构建器没有正确地将绑定(bind)添加到原始选择语句

转载 作者:行者123 更新时间:2023-11-28 23:27:43 25 4
gpt4 key购买 nike

我正在使用 Laravel 5.1 并有以下简单查询:

$searchTerm = 'random word';

$subQuery = DB::table('userprofile')->selectRaw("
user_id,
MATCH(first_name, last_name) AGAINST('?*' IN BOOLEAN MODE) AS search_score
")
->addBinding($searchTerm)
->get();

这返回nothing,但是当我直接用

替换引号时
... AGAINST('$searchTerm*' IN BOOLEAN MODE) ...

那么结果是正确的。但是,如果我这样做

DB::getQueryLog();

我明白了

"query" => "select `user_id`, MATCH(first_name, last_name) AGAINST('?*' IN BOOLEAN MODE) AS search_score from `userprofile`"
"bindings" => array:1 [
0 => "random word"
]

所以好像应该添加绑定(bind),但实际上没有。我已经尝试了其他地方建议的 select、selectRaw、->setBindings、->addBinding($searchTerm, ['select']) 等的所有变体。我怎样才能使这些绑定(bind)起作用?

最佳答案

你试过像这样替换整个正则表达式吗?

$searchTerm = 'random word*';

$subQuery = DB::table('userprofile')->selectRaw("
user_id,
MATCH(first_name, last_name) AGAINST(? IN BOOLEAN MODE) AS search_score
")
->addBinding($searchTerm)
->get();

这样,如果 laravel 添加它们,可能不会添加额外的引号。

关于php - Laravel (5.1) 查询构建器没有正确地将绑定(bind)添加到原始选择语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38570152/

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