在第二个循环中查询for循环错误的数据库(PHP,Codeigniter)

时间:2011-02-23 15:00:11

标签: php codeigniter loops

一个简单的循环遍历数组并删除数据库记录...

控制器:

foreach ($deletedTags as $deletedTag) {
    $tagId = $this->tags_model->get_tag_id($deletedTag);
    $this->tags_model->delete_tag_association_by_tag($workId, $tagId);  
}

$deletedTags是一个数组,例如:

Array ( [0] => purple [1] => trees [2] => green ) 

型号:

function get_tag_id($tag) {
    $this->db->where('tags.name', $tag);
    $query = $this->db->get(self::TABLE);
    return $query->row()->id;
}

$deletedTags中只有一个值时,它可以正常工作。当有多个值时,模型函数get_tag_id($tag)在第二个循环中断开。它在行return $query->row()->id;上出错:

Undefined property: stdClass::$id

知道为什么吗?

1 个答案:

答案 0 :(得分:0)

我已经解决了。由于某种原因,它是错误的,因为它只能在db中找到数组中的第一个标记(即使db中存在其他标记)。我添加了tag_exists检查,一切都很好......

foreach ($deletedTags as $deletedTag) {
    if ($this->tags_model->tag_exists($deletedTag)) {
        $tagId = $this->tags_model->get_tag_id($deletedTag);
        $this->tags_model->delete_tag_association_by_tag($workId, $tagId);
    }
}

怪异。