WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Увеличение значения на один (value+1) в $wpdb->update

Kama добрый вечер, помогите пожалуйста разобраться мне, почему не происходит обновление-прибавление счетчика views на одну единицу?

Извиняюсь за повтор сообщений из комментариев, не сразу заметил специальный раздел "вопросы"

post_id и hosts - не надо обновлять

$current_ip = $wpdb->get_row( $wpdb->prepare("select * from ".$wpdb->prefix."views_date where ip_address='$ip'",null));
if($current_ip == 1)
{
$wpdb->update($wpdb->prefix."views_count",
array(
'post_id' =>$id,
'hosts'=>'hosts',
'views'=>'views'+1
));
}
0
Гость
8.7 лет назад
  • 0
    campusboy4752 www.youtube.com/c/wpplus

    'views'=>'views'+1

    Вы к строке прибавляете единицу?

    Комментировать
  • 1
    Kama9618

    С помощью $wpdb->update() это сделать невозможно! $wpdb->update() может получать для обновления только готовые значения, форматов: %d, %f, или %s (число, не целое число, строка). Функция не понимает никакие операции, в том числе value+1.

    Это можно сделать только создав готовый SQL запрос и обработав его с помощью $wpdb->query():

    $sql = $wpdb->prepare(
    	"UPDATE {$wpdb->prefix}views_count SET views=(views+1) WHERE post_id=%d AND hosts='hosts'",
    	$post_id
    );
    
    $done = $wpdb->query( $sql );
    
    if( $done ) echo 'выполнено!';
    else echo 'не выполнено';
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация