Problem mit ON DUPLICATE KEY UPDATE

Sven4972

Mitglied
Hallo,

mit folgendem Code trage ich Daten in eine Tabelle einer MySQL_Datenbank ein,

PHP:
insert into login_konto (id, Nickname, Logins, Datum)
values ('','".$userinfo[uname]."','1','".$heute."')
ON DUPLICATE KEY UPDATE Logins = Logins + 1 , Datum = '".$heute."'";

Dabei werden die vorhandenen Daten nicht aktuallisiert, sondern jedesmal ein neuer Eintrag gemacht.

Die Tabellsenstruktur schaut so aus:

PHP:
CREATE TABLE `login_konto` (
  `Id` int(11) NOT NULL,
  `Nickname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `Logins` int(50) DEFAULT NULL,
  `Datum` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Indizes der exportierten Tabellen
--

--
-- Indizes für die Tabelle `login_konto`
--
ALTER TABLE `login_konto`
  ADD PRIMARY KEY (`Id`);

Wo muss ich nach dem Fehler suchen, damit es richtig funktioniert?


LG Sven
 
Hast du noch ein Trigger der die ID fortlaufend aus einer Sequenz holt?

ID ist der Primary Key. ID darf nicht Null Null sein. ID ist ein Integer.

In deinem Insert übergibst du aber die ID als Leerstring.
Entweder gibt das ein Fehler oder du hast einen Bevor-Insert-Trigger auf der Tabelle.

Bei Upzudatenden Daten musst du dnebst dem Namen auch die ID des entsprechenden Users mitgeben. Denn INSERT..ON DUPLICATE prüft nur auf den Primary Index. ALso die ID.
 
Zurück