我有两个关系一对一的表:
http://i63.fastpic.ru/big/2014/0605/b8/2b2645b4fb0d34b93021aebd114f6fb8.jpg
我得到表格,用户输入:
- 帖子标题;
-文章;
-并将图像下载到服务器。
要使用db,我正在使用PDO扩展。
我添加帖子的模型方法:
public function add_post($title, $article, $user_id, $img_name) {
$sql = "INSERT INTO Posts(title, article, user_id, post_time)
VALUES (:title, :article, :user_id, :post_time)";
$query = $this->db->prepare($sql);
$query->execute(array(
':title' => $title,
':article' => $article,
':user_id' => $user_id,
':post_time' => date('Y-m-d H:i:s',time() )
));
1.我想在图像表中插入我们要添加的帖子的图像名称和ID,如何将该ID添加到图像表(Posts_id字段)中?
2.如果可能的话,如何通过一个查询执行此操作?
3.一对一关系对吗?一个帖子只能有1张图片。
对不起,英语不好! :D
最佳答案
您可以获取最后一个插入ID,以获取刚刚插入的帖子的ID。见http://www.php.net/manual/en/pdo.lastinsertid.php
不,不能在一个查询中完成。
如果一个帖子只能有一个图像,那么您最好将图像与帖子存储在同一表中(将图像列添加到posts表中)。然后,您还可以将图像与post的其他属性一起插入。按照现在的方式,根据数据库结构,帖子可以包含0个或更多图像,尽管您当然仍然可以通过UI强制始终只有一个图像。
因此,一张桌子更容易,像您现在使用的两张桌子一样,如果您想保持每个帖子有多个图像的可能性,则更加灵活。
取决于您选择什么,但是我现在选择将其存储在一张表中。两张表的设置增加了您还不需要的复杂性。完成后,您始终可以将数据迁移到另一个结构。同样,两个表的结构更灵活,但是例如,它仍然不允许您存储一个可以在帖子之间共享的图像。
因此,由于您不知道是否需要更复杂的结构,也不知道该结构将是什么,因此,我将选择单个表方法并将图像与帖子一起存储。另请参见YAGNI。
关于php - 插入问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24068519/