dongxi5423 2014-07-07 11:00
浏览 24

无法将数组绑定到CDbCriteria(Yii)

I want to use WHERE IN(array) clause in my query.

$criteria = new CDbCriteria;
$criteria->addCondition('id_cty_cmp IN(:ids)');
$criteria->params = array(':ids' => $ids); // binding array

$cmps = Component::model()
            ->with(array('type', 'values'))
            ->findAll($criteria);

Like this, I get "Array to string conversion" error.

When I used

$criteria->params = array(':ids' => implode(',', $ids));

I got nothing (empty array).

When I don't use binding, it works (but clearly not a good practice):

$criteria = new CDbCriteria;
$criteria->addCondition('id_cty_cmp IN(' . implode(',', $ids) . ')');

Any ideas?

  • 写回答

2条回答 默认 最新

  • doufeikuang7724 2014-07-07 11:08
    关注

    Alright, here's the solution. May it help future googlers.

    $criteria = new CDbCriteria;
    $criteria->addInCondition('id_cty_cmp', $ids);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起