查询不在laravel中工作,但另有工作

时间:2013-02-27 16:53:20

标签: php laravel

我有以下查询

select stock_data.symbol, open, high, low, close, oi from stock_data 
left join fo_data on fo_data.data_date = stock_data.data_date 
where stock_data.symbol='SYMBOL'

符号是两个表中的相同列。 stock_data包含大约9列,fo_data包含大约70列。

以上查询在phpmyadmin中正常工作但在laravel中没有正常工作,也尝试了流畅的查询构建器。

修改

$results = DB::table('stock_data')
        ->left_join('fo_data', 'stock_data.data_date', '=', 'fo_data.data_date')
        ->where('stock_data.symbol', '=', $symbol)
        ->where('stock_data.data_date', '>=', DB::raw("DATE_SUB('{$data_till}', INTERVAL {$months} MONTH)"))
        ->order_by('stock_data.data_date', 'asc')
        ->get();

如果我评论此代码,其他代码将完美地工作,但如果此代码存在,则返回的页面为空(不是404)

修改

我增加了内存限制,现在它显示了结果。我的查询非常错误,并返回超过5000000行,所以这一定是问题所在。

1 个答案:

答案 0 :(得分:0)

您应该使用DB::query发出与构建器不兼容的复杂任意查询。

您还可以使用DB::connection()->pdo访问基础PDO对象并尝试使用它。

请参阅:http://laravel.com/docs/database/raw

另外,尝试将标识符放在反引号之间。例如:

select `id` from `users`

这是因为您可能已经点击了某些数据库的保留字。 PhpMyAdmin可能正在为您做这个,这就是为什么你没有在那里得到错误。只是一个理论。