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