我为这个downmodded?
$sql = "UPDATE skills SET level = level+1 WHERE id = $id";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);
在Teifion的具体情况下,phpBB DDL将该特定字段列为NOT NULL,因此没有增加NULL的危险。
在一般情况下,不应使用NULL表示零。递增NULL应该给出一个NULL的答案。如果你是一个错误的开发人员,认为NULL = 0,从键盘离开,找到另一个消遣,你只是为了我们其他人的生活艰苦。当然这是电脑行业,我们说你错了什么?如果没有错,请使用
$sql = "UPDATE skills SET level = COALESCE(level,0)+1 WHERE id = $id";
…但是我们面对它:你错了如果每个人都从0开始,那么你的DDL应该包括在内
level INT DEFAULT '0' NOT NULL
以防程序员在创建记录时忘记设置它。如果不是每个人都从0开始,那么跳过DEFAULT并强制程序员在创建时提供一个值。如果有些人超越水平,对于一个水平的人来说,这是一个无意义的事情,那么在他们的层面上加一个就没有意义了。在这种情况下,请从DDL中删除NOT NULL。