上载具有外键约束的图像

时间:2019-01-15 07:22:02

标签: codeigniter foreign-keys default-value

我在images表的user_id列的users表中有一个外键约束。尝试上传新图像时,出现数据库错误

  

1364:字段“ user_id”没有默认值。

我怀疑是因为代码正在寻找要添加到images列的值。我原本以为,如果设置了会话,则加载图片会自动识别正在上传图片的用户。

问题:当用户上传图像时,如何包含将两个表合并的数据?这是上传图像的控制器中的代码:

function upload() {
        //$filename = md5(uniqid(rand(), false));
        $config = array(
            'upload_path' => 'uploads',
            'allowed_types' => "gif|jpg|png|jpeg",
            //'file_name' => $filename,
            'max_size' => 200,
            'max_width' => 1024,
            'max_height' => 768     
        );          


    $this->load->library('upload', $config);

    if(empty($this->session->userdata['email'])){
               redirect(site_url().'/main/login/');

        }else       
    $this->load->library('upload', $config);

    if($this->upload->do_upload())
        {
        $file_data = $this->upload->data();

        $data['name'] = $file_data['file_name'];
        $data['file'] = $file_data['file_path'];
        $data['file_type'] = $file_data['file_type'];
        $data['file_size'] = $file_data['file_size'];           
        $data['date_uploaded'] = date('Y/m/d H:i:s');

images_model:

function save_image($data){     
    $this->db->insert('images', $data);
} 

The 'images' table:

赞赏所有输入和建议。

1 个答案:

答案 0 :(得分:0)

我认为在您的应用程序中,只有用户可以上传图片... 然后,在上传图片之前,您应该检查用户是否已签名并获取用户ID ...

要将新记录添加到图像表时,必须将user_id添加到$ data数组

$ data ['user_id'] = $ this-> session-> userdata('user_id'); //或您添加到会话中的任何内容

...

相关问题