3

Kohana の優れたドキュメントのおかげで、私は SO にひれ伏すしかありません。;)

うまくいけば、これは本当に簡単です: 特定のグループの 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 Internal Server Error」が表示されます

私が求めていることをすることは可能ですか?

前もって感謝します。

4

2 に答える 2

8

$story_ids を配列として渡すとうまくいくはずです。

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

Kohana のどのバージョンを使用していますか?

于 2011-05-01T02:56:52.010 に答える
6

おそらく->select() を忘れました か?

また、「IN」キーワードを使用する2 つの方法を次に示します。

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 メソッドを使用します。

于 2011-04-13T00:30:07.917 に答える