如何从PHP / Laravel向原始查询插入SQL列名

问题描述 投票:0回答:1

我在Laravel中有此代码:

DB::table('items')
    ->whereRaw("? = 1", ['active'])
    ->get();

在我的数据库表中,有一个名为active的列,我要运行的查询是:

SELECT *
FROM items
WHERE active=1

我的代码失败,因为查询将我的'active'参数作为字符串而不是SQL语法中的列名传递(这是预期的行为)。因此,我得到的不是上面的内容,而是这样的:

SELECT *
FROM items
WHERE "active"=1

任何想法如何解决这个问题?

PS:我尝试了MySQL函数TRIM,但没有成功(也许我没有正确执行)。

php mysql laravel laravel-query-builder
1个回答
1
投票

这不是最干净的方法;

$day = 'Monday'; // dynamically Tuesday, Wednesday....
$method = 'where' . $day;

return DB::table('items')->$method('1')->get();
© www.soinside.com 2019 - 2024. All rights reserved.