Php MySQL在更新其他字段时不更新数据库中的单个字段
我使用的是Zend Framework 1.10.8和MySQL服务器5.1.X。我创建数据数组来更新记录,但只有一个字段更新Php MySQL在更新其他字段时不更新数据库中的单个字段,php,mysql,zend-framework,zend-db,Php,Mysql,Zend Framework,Zend Db,我使用的是Zend Framework 1.10.8和MySQL服务器5.1.X。我创建数据数组来更新记录,但只有一个字段更新 <?php $where = "`character_id` = '5'"; $healthGained = 5; $data = array(); if ($healthGained > 0) { $data['character_current_health'] = $character['charact
<?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);
}
?>
我从印刷品中得到的是:
排列
(
[字符\u当前\u健康状况]=>430
[character_max_health]=>430
)
但是,字符\u current\u health的值在数据库中不会更改。但是,character_max_health的值不会改变。有人知道这是怎么回事吗
注意:字段名称正确,数据类型正确。这是在运行Ubuntu的Linux服务器上运行的。Geeez!没有关系。我有时是个白痴。它正在正确更新,但由于操作流程不畅,我用错误的值重新更新了表。请提供更多详细信息。什么字段类型是
character\u current\u health
?where子句中的一条注释,是否有任何理由将5作为字符串文本而不是整数传递?@kovshenin在mySQL中无所谓,它将自动转换为字段类型。为了避免在非数值和空值上出现SQL错误(尽管可以说,这些错误应该在以前被发现),这在很大程度上被认为是一个好的实践@Pekka,我没有说这是错误,是的,是最佳实践。此外,如果从5中删除引号,则可以对整个character\u id=5
string文本进行单引号,单引号的解析速度比双引号快:-P我认为..~每纳秒计数一次~使用Zend_Db_Profiler或告诉MySQL记录您的查询,并查看生成的查询是什么。因此,这些“奇怪”错误的原因常常是。当这样的事情发生时,除非你放弃所有的假设,否则很难调试!