首頁 > 資料庫 > mysql教程 > 如何處理 Laravel 原始資料庫模型查詢中的綁定參數?

如何處理 Laravel 原始資料庫模型查詢中的綁定參數?

Mary-Kate Olsen
發布: 2024-11-19 02:58:02
原創
414 人瀏覽過

How to Handle Binding Parameters in Laravel Raw DB Queries on Models?

在模型上的Laravel 原始資料庫查詢中綁定參數

在模型上的Laravel 中使用原始資料庫查詢時,綁定參數可能是一個挑戰。組合使用命名參數和位置參數時會出現此問題,導致錯誤「參數編號無效:混合命名參數和位置參數。」

要解決此問題,請考慮以下解決方案:

  1. 將原始資料庫查詢中的命名參數替換為問號(?)。
  2. 使用 setBindings() 方法綁定參數值到查詢。傳遞給 setBindings() 的陣列中值的順序應與查詢中問號的順序相符。
$property = Property::select(
    DB::raw("title, lat, lng, ( 
        3959 * acos( 
            cos( radians(  ?  ) ) *
            cos( radians( lat ) ) * 
            cos( radians( lng ) - radians(?) ) + 
            sin( radians(  ?  ) ) *
            sin( radians( lat ) ) 
        )
   ) AS distance")
)
->having("distance", "<", "?")
->orderBy("distance")
->take(20)
->setBindings([$lat, $lng, $lat, $radius])
->get();
登入後複製

透過使用 setBindings() 方法,參數值可以綁定到查詢,允許執行需要參數化的原始資料庫查詢。

以上是如何處理 Laravel 原始資料庫模型查詢中的綁定參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板