使用外键约束上传图像
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'); // 或者你添加到会话中的任何东西
.....
我在 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'); // 或者你添加到会话中的任何东西
.....