Я пытаюсь записать IP-адреса пользователей на моем сайте, и я хочу иметь следующий поток при входе пользователя наВ правильном использовании Duplicate key? Не работает. MySQL/PHP
if (new ip address detected)
enter in to db
else if (ip address has already been recorded)
do nothing
Так что я не запись каждый раз, когда пользователь входит on, только если это новый IP-адрес. Я думал, что у меня есть правильный код, но дубликаты по-прежнему входят в БД. Может ли кто-нибудь увидеть, где я ошибаюсь?
public function insertIpAddress($user_id, $user_ip) {
return $this->dbHandler->DbQuery("INSERT into user_ip (user_id, ip_address)
VALUES (?,?) ON DUPLICATE KEY UPDATE `user_id` = `user_id`",
array($user_id,$user_ip));
}
Я также попытался дублированием KEY UPDATE ip_address
= ip_address
, но это не сработало.
My DB выглядит следующим образом:
и выходит так:
ip_address user_id
10.245.1.38 378
10.245.1.38 378
Может быть установлен уникальный столбец на столбцах? – RonaldPK
В этом случае вам даже не нужно дублировать обновление ключа, просто уникальный индекс/первичный ключ и простую вставку. – Shadow