感谢Kohana的出色文档,我不得不求助于自己。 ;)
希望这很简单:我正在尝试收集属于某组ID的所有故事。我的代码如下:
$story_ids = '(12,56,99,213,319)';
$stories = ORM::factory('story')->where('id', 'IN', $story_ids)->find_all();
但是,这显然不起作用。我收到MySQL错误,因为在查询中$story_ids
字符串周围放置了单引号。
编辑:我也尝试将$story_ids
作为数组传递,但之后我只得到了“500内部服务器错误”
有可能做我要问的事吗?
提前致谢。
答案 0 :(得分:7)
将$ story_ids作为数组传递应该可行。
$story_ids = array(12,56,99,213,319);
$stories = ORM::factory('story')->where('id', 'IN', $story_ids)->find_all();
你使用什么Kohana版本?
答案 1 :(得分:6)
您是否忘记了 - > select()?
此外,以下两种方式概述here使用“IN”关键字:
ORM::factory('table1')->select('mls_id')->where('mls_id', 'NOT IN', DB::Select('mls_id')->from('table2'))->find_all();
ORM::factory('table1')->select('mls_id')->where('mls_id', 'NOT IN', DB::Expr('(SELECT mls_id FROM table2)'))->find_all();
我通常使用DB :: Expr方法来处理你正在做的事情。