是否在从数据库中删除记录后‘USERNAME_EXISTS’仍返回ID? 时间:2016-05-28 作者:Adam Christianson 是否有某种默认情况下打开的MySQL查询缓存?我正在尝试编写一个用户导入脚本,我从username_exists从中删除记录后的函数wp_users 桌子在我通话时删除记录后username_exists Wordpress仍在返回已删除用户的ID,而不是false. 古怪的我错过了什么? 2 个回复 最合适的回答,由SO网友:dan9vu 整理而成 默认情况下,WordPress使用$wp_object_cache 这是WP_Object_Cache 保存到数据库的行程。追溯username_exists() 函数,您会注意到get_user_by() 使用WP_User::get_data_by() 从中返回用户数据$wp_object_cache 立即执行,而不检查数据库中是否存在该用户。请注意$wp_object_cache 存储在内存中。这意味着,如果直接在数据库中删除用户记录而不清理用户缓存,则用户数据仍然可用。这就是问题所在。那么你错过了什么?缺少到delete user the right way.缺少到clean user cache. SO网友:Mark Kaplun 缓存可以是任何地方,首先是mysql组件端的请求缓存(在这种情况下不太可能影响),然后是wordpress端的对象缓存。您可能在代码中做了一些错误的事情,但最好使用API(或wordpress admin作为前端)来删除内容,然后通过直接访问DB来尝试删除它们。不仅缓存可能会给您带来问题,而且用户元和其他配置设置也是您不打算考虑的。 文章导航