【问题标题】:$wpdb->get_results not working$wpdb->get_results 不工作
【发布时间】:2014-05-26 16:55:27
【问题描述】:

我编写以下代码将值从一个表复制到另一个表,但 $wpdb->get_results 没有返回任何内容。

function rating_convert() {
    global $wpdb;
    $likes = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'up_down_comment_vote_totals', ARRAY_N);
    foreach ($likes as $like) {
        $wpdb->query('UPDATE ' . $wpdb->prefix  . 'comment_rating SET ck_rating_up = ' . $like['vote_count_up'] . ' WHERE ck_comment_id = ' . $like['comment_id']);
        $wpdb->query('UPDATE ' . $wpdb->prefix  . 'comment_rating SET ck_rating_down = ' . $like['vote_count_down'] . ' WHERE ck_comment_id = ' . $like['comment_id']);
    }
}

我已经用 echo function.foreach 测试了每一行,但我认为 $wpdb->get_results 是错误的。 请帮我。 对不起我的英语不好。

【问题讨论】:

  • 代码对我来说看起来不错。 var_dump($likes); 长什么样子?
  • 不工作。也许数据库列是 147,308
  • 什么?我不明白。什么不工作? 147,308 是多少?
  • 对不起我的英语不好
  • 我们随时为您提供帮助。尝试更好地解释您的问题。在确保它们确实存在之后,向我们展示这些表(及其架构)中的一些数据。

标签: php wordpress


【解决方案1】:

我解决了这个问题。 我的表有 147,308 行。 问题是表行数。 我添加 LIMIT 代码仅获取 1000 行,并在复制到另一个表后删除每一行。谢谢。

function comment_rating() {
    global $wpdb;
    $likes = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'up_down_comment_vote_totals LIMIT 0, 1000', ARRAY_A);
    foreach ($likes as $like) {
    echo "id " . $like['comment_id'] . "<br>";
    $wpdb->query('UPDATE ' . $wpdb->prefix  . 'comment_rating SET ck_rating_up = ' . $like['vote_count_up'] . ' WHERE ck_comment_id = ' . $like['comment_id']);
    $wpdb->query('UPDATE ' . $wpdb->prefix  . 'comment_rating SET ck_rating_down = ' . $like['vote_count_down'] . ' WHERE ck_comment_id = ' . $like['comment_id']);
    $wpdb->query('DELETE FROM ' . $wpdb->prefix  . 'up_down_comment_vote_totals WHERE comment_id =  ' . $like['comment_id']);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多