我正在创建社交网站,并且И有用户帖子将被提取的墙。当用户创建新帖子时,他们可以选择附加照片。 发布和附件具有不同的数据库表和不同的控制器和模型。
问题是,当我执行查询以插入新的帖子时,需要再次查询附件女巫将持有post_id。所以首先我需要在数据库中插入帖子,然后И需要为该帖子插入附件?但是如何在一段时间内执行所有查询时获取该帖子的id?
让我们看看我的表:
发表
post_id account_id post_text
------- ---------- -----------------------
1 1 Hello world post
附件
attachment_id post_id attachment_type attachment_name
------------- ------- --------------- -----------------
1 1 3 photo_1.jpg
2 1 2 video_1.mp4
3 1 3 photo_2.jpg
我不想为此使用交易。
提交时我需要插入:
INSERT INTO post bla bla bla
INSERT INTO attachments bla bla bla <post_id> //how to get it when is executed in some time?
答案 0 :(得分:2)
如果您正在使用codeigniter,必须有一些选项来获取插入的id我以这种方式使用......
$this->db->insert('posts', $post_data);
$insert_id = $this->db->insert_id();
答案 1 :(得分:0)
您必须从post
表格中获取最后一个插入的ID,然后将insert
添加到attachments
表中,其参考ID为
INSERT INTO post (<FIELDS>) VALUES (<VALUES)
$pdo->insert('posts', $yourData);
$lastInsertId = $pdo->lastInsertId();
然后你必须插入attachments
INSERT INTO attachments (<FIELDS>) VALUES (<VALUES)