问题描述
我的 wordpress 插件有一个表,其中包含一个名为 ID 的 AUTO_INCREMENT 主键字段。当一个新行插入到表中时,我想获取插入的 ID 值。
该功能是使用 AJAX 将数据发布到服务器以插入数据库。在 AJAX 响应中返回新的行 ID 以更新客户端状态。多个客户端可能会同时将数据发布到服务器。所以,我必须确保每个 AJAX 请求得到 EXACT 新的行 ID 作为响应。
在 PHP 中,有一个名为 mysql_insert_id 的方法用于此功能。但是,只有参数是上次操作的 link_identifier,才有效。我的数据库操作是 $ wpdb 。如何从 $ wpdb 中提取 link_identifier 以确保 mysql_insert_id 有效?有没有其他方法从 $ wpdb 获取 last-inserted-row ID?
谢谢。
最佳解决方案
直接在插入的 $wpdb->insert()
之后,执行以下操作:
$lastid = $wpdb->insert_id;
关于如何做 wordpress 方式的更多信息可以在 wordpress codex 中找到。以上详细信息见 wpdb class page
次佳解决方案
这是我在代码中如何做到的
...
global $wpdb;
$query = "INSERT INTO... VALUES(...)" ;
$wpdb->query(
$wpdb->prepare($query)
);
return $wpdb->insert_id;
...
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。