首页 > 解决方案 > YII 1.1 - 查询生成器:如何以 FETCH_KEY_PAIR 格式获取多个 IN 运算符记录

问题描述

我们在以 PDO 格式获取记录时遇到了一些问题。请参阅下面的示例代码:

$getCategories= Yii::app()->db->createCommand()
        ->select('id,category_name')
        ->from('content_categories')
        ->where('id IN (:id)', array(':id'=>$getContentList['content_category_value']))
        //->where("id IN ({$getContentList['content_category_value']})")
        ->queryAll();
print_r($getCategories); exit;

输出:

Array
(
    [0] => Array
        (
            [id] => 1525
            [category_name] => TV 
        )

)

上面的查询$getContentList['content_category_value'])返回1525,45,但我们只得到一条记录。

当我们手动执行查询时:

SELECT * FROM `content_categories` WHERE `id` IN (1525,45);

它返回:

在此处输入图像描述

实际上我们有两个类别,但上面的查询只获取一个。您能否检查并帮助我了解我们如何使用 PDO 概念显示多个记录获取。

标签: mysqlyii

解决方案


未经测试,但您可以像这样尝试,

 $getCategories= Yii::app()->db-
 >createCommand()
    ->select('id,category_name')
    ->from('content_categories')
    ->where(array('in', 'id', 
    $getContentList['content_category_value']))    
    ->queryAll();
print_r($getCategories); exit;

推荐阅读