1

mysql関数でquery fuelphpバインディングを使用し たいときに問題がありますIN()

これは私のコードです

$status_array = array(1,2,3);
$query = 'select * from users where status IN(:status_id_as_array)' ;
$user = DB::query($query)->bind('status_id_as_array',$status_array)->execute();

そのコードから、私がデバッグしているとき、結果はゼロです

echo DB::last_query();

最後のクエリは

select * from users where status IN('1,2,3');

問題はIN('1,2,3')IN の値が文字列であるため、配列モードとして実行できないことだと思います。

別の方法でゴールできることに注意してください

 $query = 'select * from users where status IN('.implode(',', $status_array).')' ;

私の質問は

  1. mysql の IN() 関数をサポートしていない Query Binding ですか? 説明してください
  2. Fuelphp で mysql の IN() 関数を使用してバインドをクエリする別の方法はありますか?

ご回答有難うございます

4

1 に答える 1

1

クエリを実行する別の方法があります。試す:

$user = DB::select()->from('users')
    ->where('status', 'in', $status_array)
    ->execute();

次のようなクエリを実行します。SELECT * FROM `users` WHERE `status` IN (1, 2, 3)

于 2012-10-17T15:38:56.813 に答える