0
是否有可能以任何方式对插入某个列值的增量?MySQLi准备的语句:插入一个值的增量
$stmt->$this->mysqli->prepare('INSERT INTO `users` (`email`,`date_added`,`playCount`) VALUES (?, NOW(), ?)');
$stmt -> bind_param('si',$email, WHAT); // playCount++ somehow ...
$stmt -> execute();
我知道我可以使用UPDATE要做到这一点,但我需要检查,如果用户存在先不要只为一列INSERT和UPDATE之后?我认为应该有更好的方法?
编辑:更新也将无法正常工作(不备成功,返回false:任何想法可能是错误的?)
$stmt = $this->mysqli->prepare('UPDATE `users` SET `newsletter` = ?, `date_last` = NOW(), points=points+?, WHERE `email` = ?');
使playcount列要'AUTO_INCREMENT' – hjpotter92 2014-08-28 10:15:42
这不会达到我想要的。它只会为每个创建的用户增加一个值。什么时候更新被称为?请参阅我编辑的问题 – trainoasis 2014-08-28 10:39:39
您的查询包含语法错误。在WHERE之前有一个逗号,所以你的更新会失败。你不能用'INSERT'来添加信息的'++'风格 - 它只是没有意义,你不能增加一些不存在的东西。这种类型的任务通常通过在列上添加唯一约束来完成,然后使用ON DUPLICATE KEY UPDATE方法。 – 2014-08-28 10:53:43