0

codeigniter 模型中的功能不起作用。由于 codeigniter 模型函数中的以下代码,我收到 http 错误 500。如果我删除此代码.. 代码工作正常。

function get_ad_by_user($a,$b)
    {
        $this->db->select('title,ci_categories.category,ci_subcategories.subcategory,state,city,locality,ad_website,description,phone_number,address,image_token1,image_token2');
        $this->db->from('ci_pre_classifieds');
        $this->db->join('ci_categories', 'ci_categories.category_id = ci_pre_classifieds.category');
        $this->db->join('ci_subcategories', 'ci_subcategories.subcategory_id = ci_pre_classifieds.sub_category');
        $this->db->where('ci_pre_classifieds.id',$a);
        $this->db->where('ci_pre_classifieds.ad_string_token',$b);
        $q=$this->db->get();
        $this->db->last_query();
        log_message('debug','******query'.$this->db->last_query().'********');
        if($q->num_rows()==1)
        {
            foreach($q->result_array() as $row)
            {
                $data['title]=$row['title'];
                $data['category']=$row['ci_categories.category'];
                $data['sub_category']=$row['ci_subcategories.subcategory'];
                $data['state']=$row['state'];
                $data['locality']=$row['locality'];
                $data['ad_website']=$row['ad_website'];
                $data['description']=$row['description'];
                $data['phone_number']=$row['phone_number'];
                $data['address']=$row['address'];
            }
        }
        else
        {
            $data['message']="sorry either classified expired or deleted";
        }

        return $data;
    }

每个块都有错误..如果我删除所有工作...如何在 $data 数组中复制 $row 数组

4

1 回答 1

1

$data['title]=$row['title'];有一个 ' 缺失。

这可能是原因,但如果没有该错误消息,就很难说。

此外,您可能希望将功能简化为以下内容:

function get_ad_by_user($a,$b)
{
    $data = array();

    $this->db->select('title,ci_categories.category,ci_subcategories.subcategory,state,city,locality,ad_website,description,phone_number,address,image_token1,image_token2');
    $this->db->from('ci_pre_classifieds');
    $this->db->join('ci_categories', 'ci_categories.category_id = ci_pre_classifieds.category');
    $this->db->join('ci_subcategories', 'ci_subcategories.subcategory_id = ci_pre_classifieds.sub_category');
    $this->db->where('ci_pre_classifieds.id',$a);
    $this->db->where('ci_pre_classifieds.ad_string_token',$b);
    $q=$this->db->get();
    log_message('debug','******query'.$this->db->last_query().'********');
    if($q->num_rows()==1)
    {
        $data[] = $q->row_array(); 
    }
    else
    {
        $data['message']="sorry either classified expired or deleted";
    }

    return $data;
}

如果您只在查询中返回一行,您可以简单地使用$q->row_array()or$q->row()来返回单行。

以防万一,我也会$data = array()在你的函数开始时声明get_ad_by_user,否则它“可能”抱怨$data不存在。

于 2012-05-28T14:49:03.117 回答