从最近插入的数据库条目的特定行获取信息
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
【讨论】:
以上是关于从最近插入的数据库条目的特定行获取信息的主要内容,如果未能解决你的问题,请参考以下文章