第二个循环(PHP、Codeigniter)中循环错误的DB查询
一个简单的循环遍历数组并删除数据库记录 控制器:第二个循环(PHP、Codeigniter)中循环错误的DB查询,php,codeigniter,loops,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] =>
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\u tag\u id($tag)
在第二个循环中中断。它在return$query->row()->id行出现错误代码>带有:
Undefined property: stdClass::$id
知道为什么吗?我已经解决了。出于某种原因,它会出错,因为它只能在数据库中找到数组中的第一个标记(即使其他标记确实存在于数据库中)。我加了一个标签检查,一切都很好
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);
}
}
奇怪。如果不知道$deletedTags是什么,几乎不可能完全回答您的问题-它是单个数组还是多维数组,还是对象?