gpt4 book ai didi

php - 使用 codeigniter 3 将数据插入数据库

转载 作者:行者123 更新时间:2023-11-29 02:52:44 25 4
gpt4 key购买 nike

我不确定我的问题是否措辞正确,所以请随时告诉我更改它。

我允许一次上传多张图片,然后将文本作为 html img 插入数据库。

这是我的代码:

if ( ! $this->upload->do_upload('post_image'))
{
$this->session->set_flashdata('post_message', $this->upload->display_errors());
$this->session->set_flashdata('post_message_class', 'alert-danger');
redirect('/user/profile/'.$identity, 'refresh');
}
else
{
$uploaded = $this->upload->data();
// insert pos
if(isset($uploaded['file_name']) && $uploaded['file_name'] == 0){
$post_text = '<img src="/uploads/images/'.$uploaded['file_name'].'" width="251px" alt="'.$uploaded['raw_name'].'" /><br>'.$this->input->post('post_text');
}
else
{
foreach ($uploaded as $images){
$post_text = '<img src="/uploads/images/'.$images['file_name'].'" width="251px" alt="'.$images['raw_name'].'" /><br>'.$this->input->post('post_text');
}
}

$query = $this->user_model->insert_user_posts($this->input->post('poster_id'), $this->input->post('profile_id'), $this->input->post('post_type'), $post_text);
$this->session->set_flashdata('post_message', 'Image has been posted!');
$this->session->set_flashdata('post_message_class', 'alert-success');
redirect('/user/profile/'.$identity, 'refresh');
}

编辑:这是模型的代码:

public function insert_user_posts($poster_id, $profile_id, $post_type, $post_text)
{
// Users table.
$data = array(
'poster_id' => $poster_id,
'profile_id' => $profile_id,
'post_type' => $post_type,
'post_text' => $post_text,
'datetime' => time()
);

$this->db->insert($this->tables['users_posts'], $data);

if($this->db->affected_rows() > 0)
{
$this->set_message('upload_successful');
return TRUE;
}
else
{
return FALSE;
}
}

另外,我正在使用这个:https://github.com/avenirer/MY_Upload

如果我echovar_dump $post_text 它将显示两个图像的数据,但它只插入第一张图像。我在这里做错了什么?

最佳答案

如果您想将图像附加到同一个 $post_text 中变量你必须改变这一行: $post_text = '<img src="/uploads/images/'.$images['file_name'].'" width="251px" alt="'.$images['raw_name'].'" /><br>'.$this->input->post('post_text');

通过改变赋值运算符 =连接运算符 .=像这样:

$post_text .= ...

而不是覆盖 $post_text每次您将每个图像添加到它的末尾时。我可以猜测您的最终 foreach 循环可能如下所示:

$post_text = "";
foreach ($uploaded as $images){
$post_text .= '<img src="/uploads/images/'.$images['file_name'].'" width="251px" alt="'.$images['raw_name'].'" />';
}
$post_text .= '<br>'.$this->input->post('post_text');

这将创建一个字符串,其中包含一行中的所有图像,最后是 '<br>'.$this->input->post('post_text'); .请注意,您必须首先实例化 $post_text变量为某物(这里我将其设置为空字符串)以便使用连接运算符。

关于php - 使用 codeigniter 3 将数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34009451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com