自定义Eloquent查询绑定与Laravel 5的用法和限制

时间:2015-02-24 17:01:40

标签: php mysql laravel eloquent laravel-5

让我们说查询如下所示:

$query = 'select * from some_table LIMIT :limit'

我的db->选择如下:

a)$orders = $db->select($db->raw($query), array("limit" => '0,10'));

b)$orders = $db->select($db->raw($query), array("limit" => '10'));

a)不起作用,但b)确实如此。为什么呢?

这也不起作用:

$query2 = 'select :col from some_table LIMIT :limit';
$orders = $db->select($db->raw($query2), array("col" => "some_col","limit" => '10'));

我是以错误的方式使用它吗?

1 个答案:

答案 0 :(得分:0)

您需要意识到准备好的语句不仅仅是格式化的字符串。准备语句的想法是语法和参数是单独发送的,因此您可以安全地发送用户数据而不会冒险注入mysql。在查询a)中,您将语法放在参数中。关于列,也可以这样说。列名是语法的一部分。