Intereting Posts
admin загружает pre_get_posts не работает как ожидалось Как отладить удаление правила перезаписывания? Запросить множественную таксономию, основанную на другой таксономии WordPress Игнорирование моих настраиваемых шаблонов типа сообщений? Как я могу использовать условия WP Mobile Detect изнутри плагина? Заказ по измененной дате, работающей в POSTS, но не СТРАНИЦЫ Плагин для статического текста на главной странице Создание фида для всех категорий, кроме одной категории Расширенные настраиваемые поля сортируют повторитель по дате Повторное одобрение для редактирования и удаления после публикации публикации Заказать запрос WordPress по настраиваемому полю при использовании аргумента Tax_query «Установка WordPress в настоящее время устарела» проблема со сложной ситуацией многопользовательский вопрос wordpress Тип пользовательского сообщения запроса на основе идентификатора сообщения и настраиваемого значения поля Получение подсчета короткого кода, который является вложенным

$ wpdb-> обновить запрос, увеличивая значение на своем собственном!

Я хочу получить значение столбца и увеличить его на 1. После инкремента обновить значение в столбце. Например: В столбце post_likes текущее значение равно 4. Я увеличиваю его на 1 (например, этот $ var ++). После incrementing (значение теперь 5), я обновляю значение столбца. Теперь значение столбца должно быть 5, которое было 4 раньше. Для этого я использую код ниже.

 $results = $wpdb->get_results( "SELECT * FROM `wp_like` WHERE `id`=1"); global $wpdb; if(!empty($results)) { foreach($results as $row){ $like = $row->post_likes; //Fetching value of column } } if(!empty($like)) { $like++; //INcrementing by 1 $wpdb->update( 'wp_like', array( 'post_likes' => $like //Updating clumn value ), array( 'id' => 1), //where condition '%d' //type of value used in where condition array( ), array('%s') //type of value storing in column ); } 

Но этот код обновляет значение в столбце на 2 вместо 1. Значения, значение столбца должно быть теперь 5, но вместо этого теперь 6. Я не знаю, откуда этот дополнительный приращение.

Чтобы проверить, увеличился ли я дважды по ошибке, я помещаю echo на varaible, чтобы проверить, где значение увеличивается в два раза, как показано ниже.

 $results = $wpdb->get_results( "SELECT * FROM `wp_like` WHERE `id`=1"); global $wpdb,$like; if(!empty($results)) { foreach($results as $row){ $like = $row->post_likes; } } echo 'after loop'.$like; //Returns value 4 if(!empty($like)) { echo 'Before increment'.$like; //Returns value 4 $like++; //INcrementing by 1 echo 'After increment'.$like; //Returns value 5 $wpdb->update( 'wp_like', array( 'post_likes' => $like ), array( 'id' => 1), '%d' array( ), array('%s') ); } echo 'After update'.$like; //Returns value 5 

В комментариях (перед эхо-строками) я написал результаты эха. И этим я узнал, что стоимость не увеличивается вдвое на моей стороне. Но это как-то запрос обновления увеличивается.

Когда я удаляю $like++; от кода, то никакое значение не увеличивается вообще. Значения средств могут храниться только после увеличения на 2. Почему? Что я делаю не так?