Php 如何在Laravel中的DB::Select()中添加变量SQL查询
我有一个Php 如何在Laravel中的DB::Select()中添加变量SQL查询,php,sql,database,laravel,Php,Sql,Database,Laravel,我有一个DB::select() 这就是我试图做的,但它返回SQL语法错误 $restaurantSql = ""; $restaurantIds = [6,43,51]; if ($someOtherVariable) { $restaurantSql = "AND orders.restaurant_ids IN (".implode(",", $restaurantIds).")"; } $resu
DB::select()
这就是我试图做的,但它返回SQL语法错误
$restaurantSql = "";
$restaurantIds = [6,43,51];
if ($someOtherVariable) {
$restaurantSql = "AND orders.restaurant_ids IN (".implode(",", $restaurantIds).")";
}
$result = DB::select(
"SELECT *
FROM orders
JOIN restaurants ON orders.restauant_id = restaurants.id
WHERE orders.status = 'complete' :restaurant_sql AND
orders.created_at >= :start_date",
["restaurant_sql" => $restaurantSql, "start_date" => $startDate]
);
start_date
根据Laravel提供的文档工作,但是restaurant_sql
不工作。你知道我怎样才能做到这一点吗?我想你的问题就在这里
$result = DB::select(
"SELECT *
FROM orders
JOIN restaurants ON orders.restauant_id = restaurants.id
WHERE orders.status = 'complete'". $restaurantSql. "AND
orders.created_at >= :start_date",
["restaurant_sql" => $restaurantSql, "start_date" => $startDate]
);
我不想添加餐厅ID,我想动态添加整个SQL。好的,我知道了,我更改了代码。请再检查一下,我不知道它能那样工作。谢谢你,山猫