我不确定为什么我仍然得到NULL
的答案,即使它确实存在于数据库中。我也得到了一个不在DB中的值,它应该被插入。
型号:
function pageURLCheck($title, $id)
{
$this->db->select('post_title, website_id');
$this->db->where('post_title', $title);
$this->db->where('website_id', $id);
$query = $this->db->get($this->_table['posts']);
}
控制器:
$urlCheck = $this->page_model->pageURLCheck($post['post_title'], $website_id);
if($urlCheck == NULL)
{
$this->session->set_flashdata('flash', 'Page Title Exists', 'error');
}else{
$save_success = $this->page_model->save($post, $action, $post_id);
}
答案 0 :(得分:2)
您的模型功能未返回任何内容,因此当您从控制器($urlCheck = $this->page_model->pageURLCheck($post['post_title'], $website_id);
)调用它时,您会获得NULL
。
只需在方法中添加return
:
function pageURLCheck($title, $id)
{
$this->db->select('post_title, website_id');
$this->db->where('post_title', $title);
$this->db->where('website_id', $id);
return $this->db->get($this->_table['posts']);
}
此外,不检查NULL 在控制器中,由于您没有检索值(即没有result_array()
或results()
),所以您总是得到< strong>对象返回(DB类)。
<强>更新强>
重新阅读你的问题,看起来你想检查是否存在某些东西,所以你应该这样做:
function pageURLCheck($title, $id)
{
$this->db->select('post_title, website_id');
$this->db->where('post_title', $title);
$this->db->where('website_id', $id);
$query = $this->db->get($this->_table['posts']);
return $query->num_rows(); // <-- return the number of rows found in resultset
}
<强>控制器强>:
$urlCheck = $this->page_model->pageURLCheck($post['post_title'], $website_id);
if($urlCheck > 0){
$this->session->set_flashdata('flash', 'Page Title Exists', 'error');
}
else{
$save_success = $this->page_model->save($post, $action, $post_id);
}