从最近插入的数据库条目的特定行获取信息

Posted

技术标签:

【中文标题】从最近插入的数据库条目的特定行获取信息【英文标题】:Get information from specific row of most recently inserted database entry 【发布时间】:2016-02-24 23:25:54 【问题描述】:

显然这...

$lastid = $wpdb->insert_id

...会给我最后插入的行(如此处所述:How to get last inserted row ID from wordpress database?)。

但是我怎样才能定位一个特定的表,并在刚刚提交表单后从最新插入的行中获取信息?

例如,我有一个名为“license”的表,每行包含“email”和“name”列(以及其他列)。

我的想法是,在我用表单在该行中插入一些内容后,我需要在屏幕上显示电子邮件和姓名。

任何帮助都会很棒。

【问题讨论】:

如果get表包含一个自增id,你可以按id desc排序并限制一个。 我很抱歉。我刚刚意识到我最初的问题缺少一些重要信息。我已对其进行了更新以进行澄清。 这不一定是 mysql 问题。您在 MySQL 中使用什么语言? 没关系,我看到您使用的是 php。您想在提交表单的同一页面上显示电子邮件和姓名吗? 【参考方案1】:

您可以使用自动增量列的值。 您可能已经有 ID 列这样做了。

在新的SELECT-statment 中使用ORDER BY myCol DESC 自动增量列并使用LIMIT 1 仅获取具有最高值的那个(即最近的那个)

【讨论】:

【参考方案2】:

根据您已经拥有的内容,您必须使用最后插入的 id 进行新查询。

$query = "select * from license where id = ".$lastid;

使用此查询的结果,您可以打印出最后插入的行的其他信息。

如果您需要有关 php 代码的更多信息,请提供您的代码,以便我们进行相应的编辑

【讨论】:

【参考方案3】:

最后插入记录的 ID(在您的示例中来自 Wordpress),只能从列中获取(如名称所示)ID (AUTO_INCREMENT)由于最近执行的 INSERT 语句mysql doc

如果为特定的反向时间点指定“get me lastID of XYZ table”,则没有直接的方法,只能按上述方式工作。

即使在 php 中正确使用,如果在尝试获取 LAST_INSERT_ID 之前执行了其他表(您不想要的)上的其他 INSERT 语句,您也需要小心,这样您最终不会从不需要的表格。

您可能的解决方法:

从您想要的按 ID desc 排序的表中执行 SELECT,例如:

SELECT id FROM xyz ORDER BY id DESC LIMIT 1;

这是假定 id 是 AUTO_INCREMENT 或类似的

如果可能的话,另一个选项是在代码中找到您想要的表的 INSERT 语句的“位置”,例如xyz 并在此处获取 id:

$wpdb->insert_id

【讨论】:

以上是关于从最近插入的数据库条目的特定行获取信息的主要内容,如果未能解决你的问题,请参考以下文章

从特定行获取 Picker 数据

Django 应用程序视图 - 如何从 url 中的 django 数据库中获取条目并从数据库中获取更多视图信息?

php 从最后插入的行获取特定值

文件解析以获取特定信息

获取刚刚插入的记录ID?

试图从 C# 中的结构数组中删除一个条目。获取相互矛盾的信息?