我遇到以下laravel代码在Laravel中执行时没有返回任何行的问题:
$entries = DB::table('chemlog')
->where('timestamp', '>=','DATE_SUB(NOW(), INTERVAL 1 DAY')
->orderBy('timestamp','desc')
->get();
当我在MySQL控制台上执行以下操作时,它可以正常工作:
SELECT * FROM chemlog WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 DAY)
Laravel的装配和我在控制台上写的内容有什么区别?
我正在使用:
PHP 5.5
,
MySQL 5.6
,
Laravel 4
答案 0 :(得分:9)
使用原始声明:
->where('timestamp', '>=', DB::raw('DATE_SUB(NOW(), INTERVAL 1 DAY)'))
不同之处在于这是一个参数化查询,因此它基本上将其视为字符串