什么会导致CI错误地返回空值?

时间:2015-06-18 00:36:14

标签: php mysql codeigniter

我在CI中运行它,$query->result_array()返回空值,但是,当我使用$ this-> db-> last_query()时,打印出查询,然后运行它一个MySQL客户端(Sequel Pro),我得到了我期望的价值。什么会导致这通过CI执行时返回NULL?我有其他查询看起来很相似,工作得很好,但这个问题很挑剔。

以下是查询的代码:

public function get_current_eval($pers_id = NULL, $assID = NULL){
$query = $this->db->select('person.last_name, person.rest_of_name, person.id')
    ->from('person_course_conceptual_assessment AS pcca')
    ->join('person', 'person.id = pcca.faculty_id')
    ->where('pcca.assessment_id', $assID)
    ->get()
    ->result_array();        
  return $query;
}

这就是它的回归

Array(
[0] => Array
    (
        [last_name] =>
        [rest_of_name] =>
        [id] => 000000000
    )
)

这是$ this-> db-> last_query()返回的内容:

SELECT person.last_name, person.rest_of_name, person.id
FROM (person_course_conceptual_assessment AS pcca)
JOIN person ON person.id = pcca.faculty_id
WHERE `pcca`.`assessment_id` =  '123456'

我直接将其复制到MySQL GUI并将其粘贴为普通查询,运行正常,并返回所有3个参数的正确值。关于这个特定实例会导致什么的任何想法?

1 个答案:

答案 0 :(得分:1)

尝试一些像

这样的事情

检查可以获得$ assID

等$变量
public function get_current_eval($pers_id, $assID){
    $this->db->select('p.last_name, p.rest_of_name, p.id');
    $this->db->from($this->db->dbprefix .'person_course_conceptual_assessment pcca', 'left');
    $this->db->join($this->db->dbprefix . 'person p', 'p.id = pcca.id', 'left');
    $this->db->where('pcca.assessment_id', $assID);
    $query = $this->db->get();

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