1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Problem mit ON DUPLICATE KEY UPDATE

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von Sven4972, 24. Dezember 2016.

  1. Sven4972

    Sven4972 Mitglied

    Hallo,

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

    PHP:
    1. insert into login_konto (id, Nickname, Logins, Datum)
    2. values ('','".$userinfo[uname]."','1','".$heute."')
    3. 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:
    1. CREATE TABLE `login_konto` (
    2.   `Id` int(11) NOT NULL,
    3.   `Nickname` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    4.   `Logins` int(50) DEFAULT NULL,
    5.   `Datum` date DEFAULT NULL
    6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    7.  
    8. --
    9. -- Indizes der exportierten Tabellen
    10. --
    11.  
    12. --
    13. -- Indizes für die Tabelle `login_konto`
    14. --
    15. ALTER TABLE `login_konto`
    16.   ADD PRIMARY KEY (`Id`);
    Wo muss ich nach dem Fehler suchen, damit es richtig funktioniert?


    LG Sven
     
  2. Yaslaw

    Yaslaw n/a Moderator

    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.
     
Die Seite wird geladen...