【发布时间】:2011-09-02 16:28:01
【问题描述】:
如何在 MySQL 数据库的单元格中增加 int?我知道自动增量没有用,因为我不想添加新行,只需更新现有行。我目前正在使用这个(用于澄清的POST var,已在真实代码中验证):
$columnToUpdate = 'type'.$_POST['voteid'];
$query = "UPDATE myTable $columnToUpdate = $columnToUpdate+1 WHERE id=1;";
if(!mysql_query($query)) {
echo json_encode(array('success' => false, 'message' => 'Update failed: '.mysql_error()));
exit;
}
在数据库中,我有 6 个字段,id、type1、type2、type3、type4、type5,以及 id 设置为 1 的单行。目的是接收一个数字 (1-5),并建立一个参考在更新字段之前到正确的列。这导致Update failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=type4+1 WHERE id=1' at line 1,所以我猜它在增加之前没有正确地获取字段值。
一旦这个工作正常,我还需要以同样的方式减少一个字段,除非它的值是 0。所以对于奖励积分,我可以在一个查询中完成所有这些,还是拆分它会更好起来了吗?
【问题讨论】:
-
就像我上面所说的,这被简化以找到问题的根源。当然,我不只是将 POST 数据放入查询中:)