我使用的是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服務器上運行。
請詳細說明。什麼字段類型是'character_current_health'? – 2010-10-29 09:58:27
對where子句有一個註釋,是否有任何理由將5作爲字符串文本而不是整數傳遞? – kovshenin 2010-10-29 10:00:40
@kovshenin它在mySQL中並不重要,它會自動轉換爲字段的類型。爲了避免非數值和空值上的SQL錯誤,很大程度上被認爲是很好的做法(儘管可以說這些應該會在之前被捕獲) – 2010-10-29 10:01:54