插入问题

时间:2014-06-05 19:22:29

标签: php mysql pdo


我有两张表一对一的关系: 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.如果可能的话,如何通过一个查询完成此操作?
这种关系是一对一的吗?一个帖子只能有1张图片。 抱歉英文不好! :d

1 个答案:

答案 0 :(得分:0)

  1. 您可以获取最后一次插入ID 以获取刚刚插入的帖子的ID。请参阅http://www.php.net/manual/en/pdo.lastinsertid.php
  2. 不,这不能在一个查询中完成。
  3. 如果一个帖子只能有一个图像,那么您也可以将图像存储在与post相同的表中(将图像列添加到posts表中)。然后,您还可以将图像与post的其他属性一起插入。现在的方式是,根据数据库结构,帖子可以有0个或更多图像,尽管你当然可以强制通过你的UI总是只有一个。 因此,一个表格更容易,现在有两个表格更灵活,以防您希望保持每个帖子有多个图像的可能性。
  4. 这取决于你选择什么,但我现在会选择将它存储在一个表中。两个表设置增加了您不需要的复杂性。完成后,您始终可以将数据迁移到另一个结构。此外,两个表结构更灵活,但仍然不允许您存储一个可以在帖子之间共享的图像。

    所以,既然你不知道你是否需要一个更复杂的结构,也不知道那个结构是什么,我会选择单表方法并用帖子存储图像。另请参阅YAGNI