如何从wordpress数据库获取最后插入的行ID?

我的wordpress插件有一个名为ID的AUTO_INCREMENT主键字段的表。 当一个新行插入到表中时,我想获取插入的ID值。

function是使用AJAX将数据发布到服务器以插入到数据库中。 新的行ID在AJAX响应中返回以更新客户端状态。 多个客户端可能同时向服务器发布数据。 所以,我必须确保每个AJAX请求都得到正确的新行ID作为响应。

在PHP中,这个特性有一个名为mysql_insert_id的方法。但是,只有当参数是最后一个操作的link_identifier时,它才适用于竞争条件。 我对数据库的操作是$ wpdb。 如何从$ wpdb中提取link_identifier以确保mysql_insert_id工作? 有没有其他的方法来从$ wpdb获取最后插入的行ID?

谢谢。

在执行$wpdb->insert()$wpdb->insert() ,执行以下操作:

 $lastid = $wpdb->insert_id; 

有关如何做wordpress的方式的更多信息可以在wordpress codex中find。 上面的细节可以在wpdb类的页面find

我的代码就是这样做的

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

更多的类variables

像这样的事情也应该这样做:

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

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

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