【问题标题】:Yii addInConditionYii addInCondition
【发布时间】:2012-11-13 21:25:35
【问题描述】:

我尝试根据我的条件从表中获取行。 我的代码:

$conditions = array(
  'id' => array ('148028','118508')
);

$criteria = new CDbCriteria();
foreach($conditions as $key => $values){
  $criteria->addInCondition($key, $values);
}
if(!is_null($limit)) $criteria->limit = $limit;

$rows = Item::model()->findAll($criteria);

这些行存在,但结果为空。 条件对象中存在绑定参数。

日志看起来像:

system.db.CDbCommand.query(SELECT * FROM `items` `t` WHERE id IN (:ycp0, :ycp1) LIMIT 2)

我认为,条件中的参数不会绑定到查询。

我的代码对吗?

【问题讨论】:

  • 您能解释一下您要做什么吗?
  • 显示示例$conditions,该变量是什么样的?
  • $conditions = array('id' => array ('148028','118508'))
  • 你没有打开parameter logging吗?这将在您的日志中向您显示绑定到该语句的值。你的代码看起来不错。您如何检查结果为空? “绑定参数”您是否正在做其他事情来绑定?你有更多的标准吗?
  • var_dump,print_r。不,我不绑定其他东西

标签: php sql yii


【解决方案1】:

试试看这个

$criteria->addInCondition('id', array ('148028','118508'));

【讨论】:

  • 虽然你的回答没有问题,但这无济于事,因为 user6327 在foreach 循环中就是这样做的
  • 但这工作正常。我找到了解决方案,addInCondition 对引号非常敏感。谢谢,它帮助了我。
【解决方案2】:

试试这个,
$criteria->addInCondition($key, $values,'OR');

其中 $key - 字段名称,$values - 参数数组

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2014-10-31
    • 2012-10-09
    相关资源
    最近更新 更多