如何检查查询生成器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
答案 0 :(得分:0)
尝试改用replace()
:
$this->db->replace('tags', $data);
基本上,如果不存在,则会插入一条新记录;如果存在,则会根据其主键或唯一键对其进行更新。