我做了一些东西,我想知道是否有其他方法可以完成
$this = $CURUSER["id"];
mysql_query("UPDATE wuploaders SET uploads=uploads+1 WHERE userid=$this") or die(mysql_error());
if (mysql_affected_rows() == 0)
mysql_query("INSERT INTO wuploaders (userid, uploads) VALUES ('$this','1')") or die(mysql_error());
祝你一切顺利,Zamfir
INSERT INTO wuploaders (userid, uploads) VALUES ('$this','1')
ON DUPLICATE KEY UPDATE uploads = uploads+1
如果userid是唯一/主键
,它就会工作如果您已经有上传计数,也可以使用REPLACE。
REPLACE INTO wuploaders (userid, uploads) VALUES ($userid, $count);
@a1ex07的解决方案无论哪种方式都可能是好的:)
除了其他人提到的INSERT..ON DUPLICATE KEY UPDATE
语法外,有时还可以使用REPLACE
。它基本上是行的DELETE,然后是新值的INSERT。
这有一些副作用,比如同时触发删除和插入触发器。它还受到引用完整性约束,因此,如果有任何子行引用要替换的行,REPLACE将失败,或者删除将级联并删除子行。
有时REPLACE仍然很方便,但要记住这些问题。