我在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个参数的正确值。关于这个特定实例会导致什么的任何想法?
答案 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;
}
}