Codeigniter Where_In运算符确实返回任何结果

时间:2018-09-30 16:45:11

标签: php mysql codeigniter

我正在使用Codeigniter通过将Array传递给模态来查询结果列表。但是返回结果始终为空。我检查并尝试了一些在stackoverflow上发现的方法,但均无效果。

例如。 数组 (  [0] => 12  [1] => 13 )

我的代码:

<?php
ini_set('max_execution_time', 0);
ini_set('memory_limit','2048M');
defined('BASEPATH') OR exit('No direct script access allowed');

class Sms_model extends CI_Model
{
    //Return Selected Customer ID
    public function getCustomerInfo($data){

        $ids = array();
        foreach ($data['customerID'] as $id)
            {
                $ids[] = $id;
            }
        print_r($ids);
        $this->db->select('Handphone');
        $this->db->from('tblcustomer');
        $this->db->where_in('CustomerID', $ids);
        $query = $this->db->get();

        if ($query->num_rows() == 1) {
            return $query->result();
        } 
        else {
            return false;
        }
    }

}

我在查询中做错了什么? 请指导我,谢谢

2 个答案:

答案 0 :(得分:-1)

您的问题在您的IF语句中,应为> 0而不是==1。您也可以删除foreach。

像这样:

<?php
ini_set('max_execution_time', 0);
ini_set('memory_limit','2048M');
defined('BASEPATH') OR exit('No direct script access allowed');

class Sms_model extends CI_Model
{
    //Return Selected Customer ID
    public function getCustomerInfo($data){

        $this->db->select('Handphone');
        $this->db->from('tblcustomer');
        $this->db->where_in('CustomerID', $data['customerID']);
        $query = $this->db->get();

        if ($query->num_rows() > 1) {
            return $query->result();
        } else {
            return false;
        }
    }

}

答案 1 :(得分:-1)

问题出在您的 $ this-> db 对象调用中。您可以按照以下代码获取结果。检查数据库中是否存在您的列和表

<?php
ini_set('max_execution_time', 0);
ini_set('memory_limit','2048M');
defined('BASEPATH') OR exit('No direct script access allowed');

class Sms_model extends CI_Model
{
    //Return Selected Customer ID
    public function getCustomerInfo($data){


        //print_r($ids);
        //give value for $ids variable
        $this->db->select('Handphone'); 
        $this->db->where('CustomerID', $ids);
        $query = $this->db->get('tblcustomer');

        if ($query ->result_id->num_rows > 0) {
            return $query->result_object();
        } 
        else {
            return false;
        }
    }

}