$ wpdb-> get_results无效

时间:2014-05-26 16:55:28

标签: php wordpress

我编写以下代码将值从一个表复制到另一个表但$ 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函数测试了每一行。foreach行没有运行,我认为$ wpdb-> get_results是错误的。 请帮我。 抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。 我的桌子有147,308行。 问题是表行号。 我添加LIMIT代码只获得1000行,并在复制到另一个table.thanks后删除每一行。

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']);
    }
}