Увеличение значения на один (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
));
}
Вы к строке прибавляете единицу?
С помощью $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 'не выполнено';