如何从WordPress数据库最后插入的行ID?(How to get last inserted

2019-08-19 00:22发布

我的WordPress插件有称为ID的AUTO_INCREMENT主键字段的表。 当一个新行插入到表中,我想获得插入的ID值。

其特点是使用AJAX发布数据到服务器插入到数据库。 新行ID将在Ajax响应更新客户端的状态。 这可能是多个客户端同时发布的数据服务器。 所以,我必须确保每个AJAX请求得到确切的新行ID响应。

在PHP中,有一个叫mysql_insert_id此feature.But方法,它是有效的竞争条件仅当参数是最后一个操作的link_identifier。 我与数据库操作上WPDB $。 如何提取WPDB $的link_identifier确保mysql_insert_id工作? 是否有任何其他方式来获得WPDB $最后插入行的ID?

谢谢。

Answer 1:

后直$wpdb->insert()做插入,这样做:

$lastid = $wpdb->insert_id;

有关如何做事的方式WordPress的更多信息可以在WordPress抄本被发现。 细节以上在这里被发现的上WPDB类页



Answer 2:

这是我做到了,在我的代码

 ...
 global $wpdb;
 $query =  "INSERT INTO... VALUES(...)" ;
 $wpdb->query(
        $wpdb->prepare($query)
);
return $wpdb->insert_id;
...

更多类变量



Answer 3:

像这样的东西也应该这样做:

$last = $wpdb->get_row("SHOW TABLE STATUS LIKE 'table_name'");
$lastid = $last->Auto_increment;


Answer 4:

把调用mysql_insert_id()在一个事务中,应该这样做:

mysql_query('BEGIN');
// Whatever code that does the insert here.
$id = mysql_insert_id();
mysql_query('COMMIT');
// Stuff with $id.


文章来源: How to get last inserted row ID from WordPress database?