You have a error in your SQL syntax..

  • Abend,
    Ich vertsehe das Problem nicht ;)

    Code
    1 -> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `username` = 'wolf' SET `lastseen` = '2014-05-20 21:33:16'' at line 1 -- Code : 42000 -- in localhost /var/www/UMAG/classes/class.usermag.helper.php on line 206. Query: REPLACE `useractions` WHERE `username` = :username SET `lastseen` = :time


    Hier Der Code dazu


    EDIT:
    Tabellen Spalte: `username` VARCHAR(50) UNIQUE NOT NULL

  • Joa, danke Lauras, denke das passt
    @Cotton je aben... dann wird nix geschrieben... ich will ja eben das Entweder neu geschrieben wird (wenn noch nicht vorhanden) oder eben geupdated wird ;)


    So, hier noch die Lösung ;)


    Danke für die Hilfe :)

  • Bedenke, dass die auto_increment id (wenn vorhanden) hochgezählt wird, falls es den Eintrag schon gab.
    Soll heißen
    angenommen der `username` existiert schon, dann macht mysql folgendes:
    ~versuche den INSERT
    ~id auto_increment +1
    ~"oh usernameis unique und existiert schon"
    ~on duplicate key update username
    ~fertsch


    Kurz: es entstehen "gaps" (Lücken)

  • (für den Fall der Name ist primary key) Wird bei großen Datenmengen benachteiligend sein:

    Zitat von http://dev.mysql.com/doc/refman/5.1-olh/de/innodb-tuning.html


    In InnoDB verschwendet ein langer PRIMARY KEY viel Plattenplatz, weil sein Wert mit jedem sekundären Indexdatensatz gespeichert werden muss. (Siehe auch Abschnitt 9.10, „InnoDB-Tabellen- und Index-Strukturen“. Richten Sie eine AUTO_INCREMENT-Spalte als Primärschlüssel ein, wenn Ihr Primärschlüssel lang ist.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!