使用Laravel 5.5,令人难以置信的简单查询会得到错误的结果

时间:2017-09-18 12:14:52

标签: php mysql laravel-5

我现在处于优势地位。我一直试图让这个非常简单的查询在过去2小时内工作,但它不会

所有查询都选择价格介于某个范围之间的所有行。查询如下所示:

select * from `properties` where `price` >= ? and `price` <= ? limit 16 offset 

在phpmyadmin

中运行时返回正确的结果(2行)

但是当我在Laravel中使用 - &gt; get()或 - &gt; count()时,它会返回完整错误的答案。

这是我的完整laravel代码

    $query = Property::query();

    $price_min = Input::get('price_min');
    $price_max = Input::get('price_max', 1000000);

    $query->where('price', '>=', $price_min);
    $query->where('price', '<=', $price_max);

    \DB::enableQueryLog();
    $properties = $query->paginate(16);

    Helper::pr(['found' => count($properties)]);
    Helper::printLastQuery();

输出:

Array
(
    [found] => 8 <----- THIS SHOULD SAY 2
)
Array
(
    [query] => select * from `properties` where `price` >= ? and `price` <= ? limit 16 offset 0
    [bindings] => Array
        (
            [0] => 475944
            [1] => 909796
        )

    [time] => 3
)

1 个答案:

答案 0 :(得分:0)

我弄清楚它为什么不起作用

我在数据库中将数据类型字段设为text,这就是为什么它无法比较这些数字。

在我的辩护中,我从使用XML Feed生成相应列的脚本创建了表