1

当我想 在mysql 函数上使用查询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() 函数?请解释
  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 回答