使用查询绑定Fuelphp

时间:2012-10-17 10:11:16

标签: php mysql pdo fuelphp

当我想在IN() mysql函数上using query fuelphp binding

时遇到问题

这是我的代码

$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. 它的Query Binding不支持mysql的IN()函数?请解释
  2. 还有另一种方法可以在fuelphp上使用mysql的IN()函数查询绑定吗?
  3. 感谢您的回答

1 个答案:

答案 0 :(得分:1)

还有另一种方法可以使用您的查询。尝试:

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

它将执行以下查询:SELECT * FROM `users` WHERE `status` IN (1, 2, 3)