Laravel Raw SQL Query按顺序命名参数绑定

时间:2017-12-03 00:45:29

标签: php mysql laravel

“order by”上的命名参数绑定不适用于此完整原始语句。不显示错误消息。开始和长度工作。

client.get('search/tweets', {q: 'node.js'}, function(error, tweets, response) {
   console.log(tweets);
});

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题出在基础PDO声明中。您无法在查询中绑定表名或列名,就像绑定值一样。看到这个答案:

Can PHP PDO Statements accept the table or column name as parameter?

您可以在没有原始表达式的情况下重写查询:

return DB::table('product')
           ->select([
               product.id AS 'product-id',
               ...
           ])->leftJoin('category', 'product.category_id', '=', 'category.id')
           ->orderBy($orderBy)
           ->limit($start, $length)

如果必须使用原始表达式,则必须按值手动清理订单并将其作为字符串插入查询中。