我正在尝试向一本书插入多个或单个标记,我有3个表,如books(books record)、tags(tags record)、books\u tag(books and tags的关系),从这里我应该将标记存储在文本字段中还是单独的表中?问题我有这个想法。
我首先插入带有标签的书籍,然后获取书籍的最后一个添加的id,并尝试将其与标签id一起插入到books\u tag表中。我的代码非常适用于为书籍新添加标签(标签表中不存在),但是如果我尝试插入现有的标签,在books\u tag table上总是将tag id插入为0(应该是tags table中已有的tag id),下面是我的代码
public function addTag($tags, $book_id)
{
// Loop tags to insert
foreach ($tags as $tag) {
// insert tags if not existed
$this->db->query('INSERT INTO tags (tag) VALUES (:tag) ON DUPLICATE KEY UPDATE tag = :tag');
// Bind values
$this->db->bind(':tag', $tag);
// Execute query
$this->db->execute();
// Get lsat id
$last_tag_id = $this->db->lastId();
$this->db->query('INSERT INTO books_tag (book_id, tag_id) VALUES (:book_id, :tag_id)');
// Add tag to books
$this->db->bind(':book_id', $book_id);
$this->db->bind('tag_id', $last_tag_id);
// Execute query
$this->db->execute();
}
}
暂无答案!
目前还没有任何答案,快来回答吧!