【问题标题】:WordPress database returning no results after migrationWordPress 数据库在迁移后不返回任何结果
【发布时间】:2021-12-15 01:13:20
【问题描述】:

我遇到了一个奇怪的问题,我用 mysqldump 导出了我的 wordpress 数据库,然后用 mysql 客户端在命令行上导入了它,我已经做过无数次了,但这次它的行为方式是我从未遇到过的。

数据库连接正常,我进入 wp 登录屏幕,它拒绝访问,就好像我忘记了密码一样,所以我通过 mysql 对用户运行更新以创建一个新的临时 md5,它仍然无法登录。

作为一个测试,我在主题的functions.php中添加了$wpdb,只是为了在用户表上做一个基本的选择:

$wpdb->query("SELECT * FROM wp_users LIMIT 20");

结果为空!如何?表中有数百个用户,如果我直接在 mysql 上运行相同的查询,它工作正常,这是怎么回事?

【问题讨论】:

  • 看来您的转储不完整。用 pypmyadmin 检查它
  • @nbk 就在那里!通常,如果不是全部,wordpress 会抛出连接错误,这只是没有选择任何结果,网站上的页面也没有加载。所有这些都在我可以看到的数据库中。
  • 那么你将有很多调试工作要做,但首先检查你是否连接到正确的数据库
  • 您确定结果为空而不是错误?可能是表前缀不正确。
  • @Buttered_Toast 是的,没有错误,只是空结果。

标签: mysql wordpress


【解决方案1】:

WordPress 表在 $wpdb 类中的别名是这样的 https://developer.wordpress.org/reference/classes/wpdb/#tables-2

所以你的用法意味着你的表的前缀是wp,它可能是也可能不是。

所以你可以做两种可能的事情之一。

  1. 使用默认别名users
$wpdb->query("SELECT * FROM $wpdb->users LIMIT 20");
  1. 使用$wpdb->prefix
$wpdb->query("SELECT * FROM {$wpdb->prefix}users LIMIT 20");

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 2014-12-14
    相关资源
    最近更新 更多