2
我試圖創建將帶參數的mysql UPDATE查詢。另外,如果字段不爲空,我想追加到字段的末尾。爲此我使用CASE語句。 這裏是我的學說(從硅石)查詢:如何在Laravel 4中使用參數和CASE語句進行更新查詢
$query = "UPDATE table SET filed = (
CASE WHEN field = ''
THEN :param1
ELSE concat(field, :param1)
END)
WHERE id=:param2";
$app['db']['test_db']->executeUpdate($sql, array('param1' => $user_text, 'param2' => $selected_id));
現在我想將它轉換爲Fluent或原始查詢,所以我可以在Laravel 4
這裏使用它是我的代碼:
$param1 = "String..."; // user string
$param2 = 45; // id
DB:connection('test_db')->statement("UPDATE table SET field =(
case
WHEN field=''
THEN $param1
ELSE concat(field, $param1)
END)
WHERE id=$param2");
當我在Laravel執行這個查詢我看到
語法錯誤或訪問衝突:1064
任何幫助將不勝感激。
當$參數1文本較長此解決方案不起作用,並有新的生產線等。它不逃避它。 – BlueNile
只需編輯以支持參數(綁定)。 –
謝謝,這一個工作。我想我嘗試了所有其他組合與原始聲明。我甚至試圖獲得PDO實例,並從PDO級別實現,但這會產生反作用。 – BlueNile