簡體   English   中英

如何在 Laravel 中的 DB::Select() 中通過變量添加 SQL 查詢

[英]How to add SQL query by variable in DB::Select() in Laravel

我有一個DB::select()查詢,我想通過變量添加動態 SQL 。

這是我想要做的,但它返回 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]
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM