开发者

Kohana 3.1 ORM: How to make 'where ... in' clause

Thanks to Kohana's excellent documentation, I'm having to resort to prostrate myself on SO. ;)

Hopefully this is really simple: I'm trying to gather all stories which belong to a certain group of IDs. My code is as follows:

$story_ids = '(12,56,99,213,319)';
$stories = ORM::factory('story')->where('id', 'IN', $story_ids)->find_all();

However, this is obviously not working. I'm getting a MySQL error because single-quot开发者_开发问答es are being put around the $story_ids string in the query.

EDIT: I've also tried passing $story_ids as an array, but then I just get a "500 Internal Server Error"

Is it possible to do what I'm asking?

Thanks in advance.


Passing $story_ids as an array should work.

$story_ids = array(12,56,99,213,319);
$stories = ORM::factory('story')->where('id', 'IN', $story_ids)->find_all();

What Kohana version do you use?


Did you perhaps forget the ->select() ?

Also, here are two ways outlined here to use the "IN" keyword:

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();

I typically use the DB::Expr method with what you're doing.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜