【问题标题】:Why image path is saved as word "images" instead of image name in table column in Codigniter为什么图像路径保存为单词“图像”而不是 Codigniter 表列中的图像名称
【发布时间】:2025-11-27 23:25:01
【问题描述】:

我必须在这里问两次,因为我的问题仍未得到解答。我不明白 'echo' 或 'print_r' 对于 php 和 Codeigniter 中的图像的工作方式是否不同。

我试过echo $image;print_r($image);echo $sql = $this->db->last_query();..

前 2 个的结果是“property_image_1.png”,第三个的结果是 UPDATE vbc_property_images SET profile_thumb = 'property_image_1.png' WHERE property_ref_id = '15'

现在,我的问题是当我跑步时:

型号

function update_profile_image($id, $image){
    $this->db->where('property_ref_id', $id);
    $this->db->set('profile_thumb', $image);
    $this->db->update('vbc_property_images');
    //echo $image;
    //print_r($image);
    //echo $sql = $this->db->last_query();
}
// New Added
function get_property_all_images_url($id) {
    $this->db->select('property_images');
    $this->db->from('vbc_property_images');
    $this->db->where('property_ref_id', $id);
    $query = $this->db->get();
$query_result = $query->result_array();
if (empty($query_result)) {
    return FALSE;
}
elseif (count($query_result) > 1) {
    return 0;
}
else{
    $rowId = explode(',',$query_result[0]['property_images']);
    return $rowId;
}
}

控制器

function property_profile_image_update() {
    if($this->session->userdata('is_logged_in')){
    $username = $this->session->userdata('v_member_username');
    $id = $this->uri->segment(3);
    $image = $this->uri->segment(4);
    $data['images_urls'] = $this->my_listings_model->get_property_all_images_url($id); // New Added
    $this->my_listings_model->update_profile_image($id, $image);
    // Some Code

为什么我在表 vbc_property_images 的 profile_thumb 列中得到单词“images”?

表:

CREATE TABLE IF NOT EXISTS `vbc_property_images` (
  `id` int(11) NOT NULL,
  `property_ref_id` int(255) NOT NULL,
  `v_username` varchar(50) NOT NULL,
  `property_images` varchar(2000) NOT NULL,
  `property_images_thumb` varchar(2000) NOT NULL,
  `profile_thumb` varchar(1000) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;

网址:

http://localhost/admin/dashboard/property-profile-image-update/15/property_image_1.png

【问题讨论】:

  • 您能简单介绍一下您的问题吗?看不清楚。
  • 感谢@Abdulla .. 我无法更新 db 列中的图像名称。这只会插入一个单词“图像”而不是图像名称,而不会出现任何错误。
  • 所以在这个print_r($image); 你得到了答案??
  • 是..图像名称.. 示例 image1.png,, var_dump string(21) "property_image_11.png"
  • @CodeIgniter_Learner 您正在从 url 获取图像名称,您能否也发布该 url??

标签: php codeigniter codeigniter-3


【解决方案1】:

你有没有检查过 $images 的值可能是一个数组。

【讨论】:

  • 感谢@krishnakumar,当我回显或打印时,它会给出所需的图像名称.. 它仍然是一个数组吗?我是新手。
  • @CodeIgniter_Learner: 试试 var_dump($image) 让我知道它返回什么
  • 结果是string(21) "property_image_11.png"
  • @CodeIgniter_Learner: 可以发一下表结构吗。
  • 如果我有另一个数组,其中我引用的图像也在其中,会更容易吗?我的意思是,如果在另一个数组中有 5 个图像,而我想要的图像是这五个图像之一。如果是这样,我可以更新有问题的代码。