2014-08-21 2 views
1

У меня есть следующий запрос на обновление. shots_limit должно быть его текущим значением в базе данных PLUS моим новым значением $add_shots. Есть ли способ сделать это при использовании привязок?mysql - значение update - текущее значение плюс новое значение

//figure out how many screenshots to add 
$add_shots = $_POST['Quantity'] * 500; 

$stmt = $db->prepare(" 
    UPDATE accounts 
    SET orders = :orders, 
     shots_limit = :shots_limit 
    WHERE account_id = :account_id 
"); 

//bindings 
$binding = array(
    'orders' => $orders_str, 
    'shots_limit' => $add_shots + ORIGINAL VALUE 
    'account_id' => $result['account_id'] 
); 

$status = $stmt->execute($binding); 
+0

Эта часть не была кодом, который использовался для объяснения того, что я хочу там делать. – user756659

+1

Вы можете попробовать как 'shots_limit =: shots_limit + shots_limit', а затем просто привязать': shots_limit' –

+0

, где 'shots_limit' относится к исходному значению плюс мое привязанное значение ... имеет смысл. Я знаю, что делал это раньше в «обычном» запросе, но никогда не использовал привязки. Собираюсь попробовать это. – user756659

ответ

0

Я предполагаю, что это то, что вы ищете. Просто используйте текущее значение в обновлении

$stmt = $db->prepare(" 
    UPDATE accounts 
    SET orders = :orders, 
     shots_limit = shots_limit + :shots_limit 
    WHERE account_id = :account_id 
"); 

//bindings 
$binding = array(
    'orders' => $orders_str, 
    'shots_limit' => $add_shots, 
    'account_id' => $result['account_id'] 
); 
Смежные вопросы