2017-05-26 78 views
0

舊的查詢更新現有列是這樣MySQL的:使用該列的值在準備好的查詢

update tbl_order set `pack_id` =0, `pack_down_count`=pack_down_count + '".intval($_POST['item_number'])."',`price`='".$_POST['mc_gross']."', `otime`=Now(), `ptime`=Now(), status='paid', pack_download=pack_download + '".intval($_POST['item_number'])."' where member_id='".$_MYVAR['userid']."'" 

我喜歡它,我使用的是類從https://github.com/joshcam/PHP-MySQLi-Database-Class

更改爲準備statment更新

我改變上述查詢,以

 $data = array(
     'pack_id'    =>$_MYVAR['pack_id'], 
     'pack_apply_count'  =>`pack_apply_count` + intval($_POST['item_number']), 
     'price'    =>$_POST['mc_gross'], 
     'otime'    =>date('Y-m-d H:i:s'), 
     'ptime'    =>date('Y-m-d H:i:s'), 
     'status'    =>'paid', 
     'pack_apply'  =>`pack_apply` + intval($_POST['item_number']) 
     ); 
     $db->where('member_id',$_MYVAR['userid']); 
     $db->update("tbl_order",$data); 

也三ED周圍沒有pack_apply_count和pack_apply反向引號,但沒有更新我的表

 $data = array(
     'pack_id'    =>$_MYVAR['pack_id'], 
     'pack_apply_count'  =>pack_apply_count + intval($_POST['item_number']), 
     'price'    =>$_POST['mc_gross'], 
     'otime'    =>date('Y-m-d H:i:s'), 
     'ptime'    =>date('Y-m-d H:i:s'), 
     'status'    =>'paid', 
     'pack_apply'  =>pack_apply + intval($_POST['item_number']) 
     ); 
     $db->where('member_id',$_MYVAR['userid']); 
     $db->update("tbl_order",$data); 

請告訴正確的方法來更新表

+0

答案:$ DB-> INC(pack_apply)和$ DB-> INC那裏(pack_apply_count) –

回答

1

您所提供的鏈接會給你你需要的信息,看看部分更新查詢

似乎可以用$db->inc($_POST['item_number'])

增加如示例所示:

$data = Array (
    'firstName' => 'Bobby', 
    'lastName' => 'Tables', 
    'editCount' => $db->inc(2), 
    // editCount = editCount + 2; 
    'active' => $db->not() 
    // active = !active; 
); 
+0

是什麼遞減? –

+0

是的,$ db-> dec(2) – Frankey

相關問題