从数据库获取数据字段时出错

时间:2013-11-27 18:12:39

标签: php mysql

我在我的模型中使用此代码从注册表中获取登录用户的user_id

   function get_user_id()
{
    $this->db->select('user_id');
    $this->db->from('register');
    $this->db->where('username', $this->session->userdata('username')); 
    $query = $this->db->get();
}

我在我的控制器中使用它将登录用户的user_id插入另一个使用user_id作为外键的表中。

public function event_desc()
{       
    $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
    $this->form_validation->set_rules('event_title','Event Title','required|max_length[40]');
    $this->form_validation->set_rules('event_desc','Event Description','required');
    $this->form_validation->set_rules('event_cat','Event Category','required|callback_is_default');
    $this->form_validation->set_rules('event_date','Event Date','required|date');
    $this->form_validation->set_rules('event_venue','Event Venue','required|max_length[25]');
    $this->form_validation->set_rules('event_charges','Event Charges','required');
    if($this->form_validation->run()== FALSE)
    { 

        $this->add_event();
    }
    else
    {
        $this->load->model('event_model');  
            $u_id=$this->event_model->get_user_id();
                $data=array(
                'cat_id '=> $this->input->post('event_cat'),
                'user_id' => $u_id,
                'event_title' => $this->input->post('event_title'),
                'event_desc' => $this->input->post('event_desc'),
                'event_date' => $this->input->post('event_date'),
                'event_venue' => $this->input->post('event_venue'),
                'event_charges' => $this->input->post('event_charges'),
                );
            $this->event_model->add_event_record($data);
            $this->is_logged_in();


    }

}

提交表单时,会显示以下错误:

A Database Error Occurred
Error Number: 1048
Column 'user_id' cannot be null
INSERT INTO `tbl_events` (`cat_id` , `user_id`, `event_title`, `event_desc`,
    `event_date`, `event_venue`, `event_charges`) VALUES ('2', NULL, 'vhbnjkm',
     'vhbnjkm', '2070/09/09', 'jfhsk', 'hsj')
Filename: C:/xampp/htdocs/event-tracker/application/models/event_model.php
Line Number: 6

请帮我解决问题:

2 个答案:

答案 0 :(得分:0)

您必须插入user_id,因为它似乎是另一个表的外键。如果你想留空,你应该改变你的逻辑

答案 1 :(得分:0)

可能有两种可能性

1获取userID的方式无效,请使用以下代码获取ID

$this->current_user->id

2您应首先检查用户是否已登录