使用外键约束上传图像

Uploading images with foreign key constraint

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

1364: Field 'user_id' doesn't have a default value.

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

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

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:

感谢所有意见和建议。

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

当您想向图像添加新记录时 table 您必须将 user_id 添加到 $data 数组

$data['user_id'] = $this->session->userdata('user_id'); // 或者你添加到会话中的任何东西

.....