sha*_*hat 2 php mysql increment
如何在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;
}
Run Code Online (Sandbox Code Playgroud)
在数据库中,我有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.所以对于奖励积分,我可以在一个查询中完成所有这些或者将它拆分更好吗?
mar*_*nir 13
我认为您错过了查询中的关键字'SET' - 试试
$query = "UPDATE myTable SET $columnToUpdate = $columnToUpdate+1 WHERE id=1;";
编辑:
要做"递减,除非它为零"你可以使用类似的东西:
UPDATE myTable SET $columnToUpdate =
CASE $columnToUpdate
WHEN 0 THEN 0
ELSE $columnToUpdate - 1
END CASE
WHERE id=1;`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9218 次 |
| 最近记录: |