codeigniter检查数据库更新表行中是否存在数据

时间:2019-03-25 17:24:27

标签: php codeigniter-3

如何检查查询生成器Codeigniter 3中是否存在列? 我的数据库表名称是“ tags”,此表有两列(post_id和tag),这是我的代码以添加要发布的标签:

//add post tags
public function add_post_tags($post_id)
{
    //tags
    $tags = trim($this->input->post('tags', true));

    $tags_array = explode(",", $tags);
    if (!empty($tags_array)) {
        foreach ($tags_array as $tag) {
            $tag = trim($tag);
            if (strlen($tag) > 1) {
                $data = array(
                    'post_id' => $post_id,
                    'tag' => trim($tag),
                    'tag_slug' => str_slug(trim($tag))
                );

                if (empty($data["tag_slug"]) || $data["tag_slug"] == "-") {
                    $data["tag_slug"] = "tag-" . uniqid();
                }

                //insert tag
                $this->db->insert('tags', $data);
            }
        }
    }
}

我要检查数据库中是否存在数据,如果不存在,请更新post_id列,然后插入新数据 “ post_id”列,例如“ 5,8,9” 我想在更新“ post_id”列时将帖子编号添加到以前的编号中 例如更新后的“ post_id”列此表就是这样的“ 5,8,9,11”,这里11是我最后的帖子ID

1 个答案:

答案 0 :(得分:0)

尝试改用replace()

$this->db->replace('tags', $data);

基本上,如果不存在,则会插入一条新记录;如果存在,则会根据其主键或唯一键对其进行更新。