【问题标题】:Easiest way to get ID of record that was just posted获取刚刚发布的记录 ID 的最简单方法
【发布时间】:2011-12-13 16:08:51
【问题描述】:

使用 PHP 进行 MySQL 插入时,获取刚刚添加的记录 ID 的最简单方法是什么?

例如,假设您要发布一个留言板类型的帖子,其中您在 user_posts 表中有 user_id、post_subject、timestamp 等,然后您在 user_post_threads 表中有帖子的文本。

我需要从 user_posts 表中获取新记录的 ID,以便将其添加到 user_post_threads 表中的已连接文本帖子中。

我过去的解决方案是在将数据发布到 user_post_threads 表之前对时间戳和 user_id 进行新查询以获取记录 ID。但我讨厌这样做,因为我似乎在对我的数据库进行不必要的查询。

我想改进我的方法,所以提示会很棒。谢谢!

【问题讨论】:

  • 顺便说一句,今天我在 WordPress 中执行此操作,我知道 WordPress 经常有这些小钩子,您可以使用它们来获取此类内容。但它不一定是 WordPress 解决方案,因为大多数时候我不在 WordPress 中这样做。
  • 你能在这句话里多说几次wordpress吗? (:

标签: mysql select insert


【解决方案1】:

超级简单!如果您只是使用普通 SQL

SELECT LAST_INSERT_ID()

More about LAST_INSERT_ID()


听起来你在使用 PHP,它也有一个原生函数。

$id = mysql_insert_id();

More about mysql_insert_id()

【讨论】:

  • 谢谢你们,我会试一试的。
  • 效果很好 :) 哇,我怎么忽略了那个??
  • 欢迎来到 StackOveflow,比尔!如果此答案对您有用,请将其标记为已接受:)
【解决方案2】:

您可以通过调用您在 php 中使用的任何 mysql 库中等效的 insert_id 方法来获取此信息。

mysql_insert_id

mysqli::insert_id(mysqli_insert_id)

PDO::lastInsertId

可能还有其他一些......但你明白了。

【讨论】:

    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 2011-06-17
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    相关资源
    最近更新 更多