MySQL Syntaxfehler

  • Hallo liebes Forum,

    habe in dieser Zeile einen Syntaxfehler und finde ihn nicht

    PHP
    mysql_db_query(datenbank,"INSERT downloads (download_counter) VALUES ('$download_counter') WHERE download_datei='$_GET[dat]'") or die (mysql_error());

    Als Fehler kommt immer:

    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 download_datei='Dateiname'' at line 1

    MySQl ist in Version 5.0.51, finde mit wegen der Syntax auf deren Webseite nicht zurecht :?

    Wäre für Tipps echt dankbar...

    Grüße
    MAD

    Gruß

    Matthias

  • Was genau soll die Query denn machen? Den Eintrag, wo die download_datei = $_GET[dat] ist, so aktualisieren, dass $download_counter als Wert in der Spalte download_counter steht?

    PHP
    UPDATE downloads SET download_counter='$download_counter' WHERE download_datei='$_GET[dat]'

    Ich nehme an, dass $_GET['dat'] vorher angemessen validiert wird, sodass auch wirklich nur der Counter dieser einen Datei erhöht wird.

    Übrigens, wenn es dir nur darum geht, einen Counter in der Datenbank um 1 zu erhöhen, wäre

    PHP
    UPDATE downloads SET download_counter=download_counter+1 WHERE download_datei='$_GET[dat]'


    sinnvoller.

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Wie Afrael schreibt, UPDATE und nicht INSERT.
    INSERT fügt einen neuen Datensatz ein, da gibt es keine WHERE-Klausel.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • zudem... sollte es nicht lauten insert into ?


    Yo stimmt eigentlich. Komisch, dass MySQL erst ab dem WHERE meckert. ^^

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Die Referenz gibt INTO seltsamerweise als optional an. Es scheint wohl Queries zu geben, wo es ohne geht, was mir bis grade eben auch unbekannt war.

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Und noch ein Hinweis: mysql_db_query ist veraltet, nehme mysql_select_db und mysql_query!