2010-10-29 80 views
1

我使用的是Zend Framework 1.10.8和MySQL Server 5.1.X.我創建我的數據陣列來更新記錄,但只有一個字段更新。MySQL在更新數據庫時沒有更新數據庫中的單個字段

<?php 
    $where = "`character_id` = '5'"; 
    $healthGained = 5; 
    $data = array(); 
    if ($healthGained > 0) { 
     $data['character_current_health'] = $character['character_max_health'] + $healthGained; 
     $data['character_max_health'] = $character['character_max_health'] + $healthGained; 
     print_r($data); 
     $characterInfoTable->update($data, $where); 
    } 
?> 

我從print_r的獲得是這樣的:

陣列 ( [character_current_health] => 430 [character_max_health] => 430 )

然而character_current_health的值不在數據庫中更改。然而,character_max_health的值。任何人都知道這是怎麼回事?

注意:這些字段命名正確並且是正確的數據類型。這在運行Ubuntu的Linux服務器上運行。

+0

請詳細說明。什麼字段類型是'character_current_health'? – 2010-10-29 09:58:27

+0

對where子句有一個註釋,是否有任何理由將5作爲字符串文本而不是整數傳遞? – kovshenin 2010-10-29 10:00:40

+0

@kovshenin它在mySQL中並不重要,它會自動轉換爲字段的類型。爲了避免非數值和空值上的SQL錯誤,很大程度上被認爲是很好的做法(儘管可以說這些應該會在之前被捕獲) – 2010-10-29 10:01:54

回答

0

Geeez!沒關係。我有時候是個白癡。它正確更新,但由於操作流程不佳,我重新更新了表的錯誤值。

+1

這些「怪異」錯誤的原因經常是這樣。當這樣的事情發生時,很難調試,直到你放棄所有的假設! – 2010-10-29 16:56:55