【发布时间】:2019-08-16 00:31:58
【问题描述】:
如何检查查询生成器 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
【问题讨论】:
-
这样存储
post_id的原因是什么?为什么不规范化呢?这是在单列中存储逗号分隔的问题列表:Is storing a delimited list in a database column really that bad?
标签: php codeigniter-3