dopii22884 2018-12-08 05:30
浏览 128
已采纳

无法在Laravel原始查询中绑定参数

I'm trying to bind vars to my raw query,

$query = "SELECT 1 AS rank, 'CATEGORY' AS type, category_id AS id, name AS name
          FROM category_translations
          JOIN categories ON categories.id = category_translations.category_id
          WHERE name LIKE '%?%'";

$results = DB::select($query, ['ger']);

But I am unable to do so. I have tried by binding named params, and also using DB::raw inside DB::select without any success.

What am I doing wrong here?

  • 写回答

2条回答 默认 最新

  • dongzhang7157 2018-12-08 05:47
    关注

    try to used like that

    $query = "SELECT 1 AS rank, 'CATEGORY' AS type, category_id AS id, name AS name
              FROM category_translations
              JOIN categories ON categories.id = category_translations.category_id
              WHERE name LIKE '% :nameSearch %'";
    
    $results = DB::select(DB::raw($query), ['nameSearch' => 'ger']);
    

    second way used like that

    $searchText = "ger";
    $results = DB::select(DB::raw($query), ['nameSearch' => "%".$searchText."%"]);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?