如何从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.