2015-02-26 1 views
0

Вот пример кода, но не работает.Обновление поля таблицы добавляет по 1 каждое обновление с использованием подготовленного оператора в PHP

if($increment = $cxn -> prepare("UPDATE products SET `yes`=? WHERE `id`=?")) { 
    $yes = 'yes + 1'; 
    $increment -> bind_param("is", $yes, $id); 
    $increment -> execute(); 
    $increment -> close(); 
}else{ 
    die(mysqli_error($cxn)); 
} 

Тип данные: $ да -> целого $ ID -> строка

Проблема: Это не увеличивает поле таблицы. Он всегда возвращает «0».

+0

Любая помощь будет принята с благодарностью! – user3472449

+0

Что именно означает «не работает»? Какую ошибку вы получаете? – MBaas

+0

Значение не увеличивается. Всегда возвращайте '0'. – user3472449

ответ

1

$yes должен быть инициализирован где-то, а затем вы должны сделать $yes = $yes + 1; или короче $yes +=1; или даже короче $yes++;.

+0

'yes' - поле из таблицы, которое необходимо увеличить. Это не переменная PHP. – user3472449

+0

О, я вижу. Но вы не можете использовать привязку для таких переменных выражений! Тем не менее, поскольку вы всегда увеличиваете в этой ветви кода, почему бы не изменить оператор на 'UPDATE products SET yes yes = yes + 1 WHERE' id' =? ' – MBaas

+0

Значение дана« да »может не всегда« 1 ». Это может быть любое целое число от пользователя. '1' используется только для представления данных. – user3472449

Смежные вопросы