【问题标题】:How to reference a foreign key that just got inserted via auto-increment to two insert queries如何引用刚刚通过自动增量插入到两个插入查询的外键
【发布时间】:2014-03-29 15:49:42
【问题描述】:

我的论坛类型系统有两个表,如下所示:

TBLTHREAD
* thread_id
* user_id
* date_posted
* thread_title

TBLPOST
* post_id
* thread_id (FK)
* user_id
* date_posted
* post_message

众所周知,当您在论坛中创建新主题时,您也会发布第一个帖子。这就是我遇到麻烦的地方。

我有一个如下所示的表单:

    <form method="post" action="new_thread_result.php" target="_self">
    <table>

    <tr>
    <td>Title:</td>
    <td><input type="text" name="title" required></td>
    </tr>

    <tr>
    <td>Message:</td>
    <td><textarea name="message" cols="30" rows="10" required></textarea></td>
    </tr>

    <tr>
    <td colspan="2"><center><input type="submit" name="submit" value="Submit"></center></td>
    </tr>
    </table>

    </form>

当然,TBLTHREAD 中的插入看起来像这样:

$query="INSERT INTO tblthread (user_id, thread_title, thread_status) VALUES ('$_SESSION[id_ni_user]','$_POST[title]','$status')";
$result=mysql_query($query,$db) or die (mysql_error($db));

现在我的问题是,我刚刚发布了我创建的线程,并且由于我使用的是自动增量,所以我不知道它分配给了什么 thread_id。基本上,我被困在 TBLPOST.thread_id 列中的内容。

建议,有人吗?先感谢您。 :)

【问题讨论】:

    标签: php mysql sql auto-increment sql-insert


    【解决方案1】:

    插入后,您需要使用 LAST_INSERT_ID() 来检索标识列的值。

    SELECT LAST_INSERT_ID()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      相关资源
      最近更新 更多