返回数据库时未定义的索引导致Codeigniter

时间:2012-09-11 17:17:37

标签: php codeigniter

我正在尝试将数据从Wordpress数据库传输到Codeigniter项目。我有一个返回单个值的模型方法,但我继续得到以下内容:

  

消息:未定义的索引:meta_value

     

文件名:models / transfer_model.php

以下是模型:

 public function get_meta($post_id, $key)
    {
        $this->db->select('meta_value');
        $this->db->from('wp_postmeta');
        $this->db->where('post_id', $post_id);
        $this->db->where('meta_key', $key);
        $this->db->limit(1);

        $query = $this->db->get();

        $row = $query->row_array();

        return $row['meta_value'];
    }

如果我print_r($row);,我会收到以下信息:

Array
(
    [meta_value] => The Data
)

如何阻止它返回此错误?

2 个答案:

答案 0 :(得分:0)

哪里有记录提取你在没有用查询提取的记录时返回,那么没有任何意味着你的行是空的以避免这种使用key_exists或array_key_exists看看php doc

array_key_exists

public function get_meta($post_id, $key)
    {
        $this->db->select('meta_value');
        $this->db->from('wp_postmeta');
        $this->db->where('post_id', $post_id);
        $this->db->where('meta_key', $key);
        $this->db->limit(1);

        $query = $this->db->get();

        $row = $query->row_array();

        $return = '';
        if(key_exists('meta_value',$row))
         $return = $row['meta_value'];

        return $return;
    }

答案 1 :(得分:0)

如果使用整数索引怎么办?

$row = $query->row_array();
return $row[0];