将带有数字的字符串传递给mysql

时间:2015-07-06 08:19:26

标签: php mysql

我的查询中有一组id,我使用implode函数或此代码将其传递给模型,我想在where子句中使用where。

$idKurseva = '';
        foreach( $idKursa as $value ) { $idKurseva .= $value['KursID'].','; }

        $idKurseva = rtrim($idKurseva, ",");
        $kkk = $this->statistika_model->soldProductsPrice($autoriIDString);

这是我在codeIgniter框架中的模型和函数

 public function soldProductsPrice($idkurseva)
    {
            $this->db->select('sum(ProductsPrice) * 20/100 AS Zarada, count(IdProduct) AS brojProdaja, IdProduct');
            $this->db->where_in('IdProduct', $idkurseva);
            $this->db->group_by('IdProduct');             


             $this->db->get($this->db->dbprefix(TBL_ORDERS_PRODUCTS))->result();
             return   $this->db->last_query();
    }

我得到了这种结构的查询。

SELECT sum(ProductsPrice) * 20/100 AS Zarada, count(IdProduct) AS brojProdaja, `IdProduct` FROM (`cms_cart_orders_products`) WHERE `IdProduct` IN ('10,13') GROUP BY `IdProduct`

我认为问题在于此

IN ('10,13') 

是否可以传递类似的内容

IN (10,13) 

我得到空结果

1 个答案:

答案 0 :(得分:2)

    foreach( $idKursa as $value ) { $idKurseva .= $value['KursID'].','; }

    $idKurseva = rtrim($idKurseva, ",");

使用implode:

$idKurseva = implode(',', $idKursa);

但是像Mihai之前说的那样,将数组传递给方法:where_in