misterunknown: Syntaxfehler?!

Guten Abend allerseits.

ich sitze seit mindestens einer Stunde vor dem Befehl:

mysql_query("INSERT INTO download ('desc', 'pfad1', 'type') VALUES ('".$desc."', '".$pfad1."', '".$type."')") or die("Der Download konnte nicht in die Tabelle eingetragen werden.<br>".mysql_error().");

und frage mich warum er diesen Fehler hier verursacht:

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 ''desc', 'pfad1', 'type') VALUES ('möp', 'daten/download/test.datei', 'file')' at line 1

Hat irgendjemand eine Idee?

  1. Hi Herr Unbekannt,

    und frage mich warum er diesen Fehler hier verursacht:

      
    
    > 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 ''desc', 'pfad1', 'type') VALUES ('möp', 'daten/download/test.datei', 'file')' at line 1
    
    

    An der Stelle, an der der Parser den Fehler moniert, sollten Spaltennamen stehen, und keine Strings.

    viele Grüße
    der Bademeister

  2. Hallo,

    mysql_query("INSERT INTO download ('desc', 'pfad1', 'type') VALUES ('".$desc."', '".$pfad1."', '".$type."')") or die("Der Download konnte nicht in die Tabelle eingetragen werden.<br>".mysql_error().");

    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 ''desc', 'pfad1', 'type') VALUES ('möp', 'daten/download/test.datei', 'file')' at line 1

    simpel. Einfache Anführungszeichen sind *kein* zulässiges Begrenzerzeichen für Spaltennamen.

    Tipps:

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      [...]

      Freundliche Grüße

      und was hat das jetzt mit meiner Antwort zu tun?

      MfG. Christoph Ludwig

      --
      Wo die Sprache aufhört, fängt die Musik an...
      Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~
      Go to this
      1. Hallo,

        und was hat das jetzt mit meiner Antwort zu tun?

        naja, wer Augen im Kopf hätte ;)
        das sah doch tatsächlcih danach aus, als wäre das ne antwort, dabei ist DATENBANK nur viel länger als PHP im Topic ...

        MfG. Christoph Ludwig

        --
        Wo die Sprache aufhört, fängt die Musik an...
        Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~
        Go to this
  3. Hallo,

    mysql_query("INSERT INTO download ('desc', 'pfad1', 'type') VALUES ('".$desc."', '".$pfad1."', '".$type."')") or die("Der Download konnte nicht in die Tabelle eingetragen werden.<br>".mysql_error().");

    und frage mich warum er diesen Fehler hier verursacht:

    vielleicht das fehlende Semikolon am Ende des Query's ?

    MfG. Christoph Ludwig

    --
    Wo die Sprache aufhört, fängt die Musik an...
    Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~
    Go to this
    1. echo $begrüßung;

      vielleicht das fehlende Semikolon am Ende des Query's ?

      Sowohl PHP- als auch MySQL-Handbuch sprechen bei Verwendung von mysql_query() zwar nur von "should not end with a semicolon", ich meine mich aber zu erinnern, dass ein abschließendes Semikolon sogar direkt beanstandet wird.

      echo "$verabschiedung $name";

      1. Hallo,

        Sowohl PHP- als auch MySQL-Handbuch sprechen bei Verwendung von mysql_query() zwar nur von "should not end with a semicolon", ich meine mich aber zu erinnern, dass ein abschließendes Semikolon sogar direkt beanstandet wird.

        naja das ist mir klar. Das war von mir auch nicht direkt als Frage gemeint.
        ich kenne bis jetzt auch keine Systeme, die ein fehlendes Semikolon akzeptieren.

        MfG. Christoph Ludwig

        --
        Wo die Sprache aufhört, fängt die Musik an...
        Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~
        Go to this
        1. echo $begrüßung;

          » Sowohl PHP- als auch MySQL-Handbuch sprechen bei Verwendung von mysql_query() zwar nur von "should not end with a semicolon", ich meine mich aber zu erinnern, dass ein abschließendes Semikolon sogar direkt beanstandet wird.

          naja das ist mir klar. Das war von mir auch nicht direkt als Frage gemeint.
          ich kenne bis jetzt auch keine Systeme, die ein fehlendes Semikolon akzeptieren.

          Ich sprach von einem vorhandenen, nicht von einem fehlenden Semikolon. Da mysql_query() sowieso nur ein einzelnes Statement haben möchte, ist das Semikolon mindestens entbehrlich.

          echo "$verabschiedung $name";

          1. Hallo,

            Ich sprach von einem vorhandenen, nicht von einem fehlenden Semikolon. Da mysql_query() sowieso nur ein einzelnes Statement haben möchte, ist das Semikolon mindestens entbehrlich.

            achso ... naja ... ich persönlich mache hinter jedem Befehl ein Semikolon ... egal ob bei SQL, JS, C ...
            Auch wenn man es weglassen kan(z.b: js) ... von daher bin ich nicht fan von fehlenden Semikolons.

            MfG. Christoph Ludwig

            --
            Wo die Sprache aufhört, fängt die Musik an...
            Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~
            Go to this
  4. Ich hatte 2 eigentliche Fehler gemacht:

    • Spaltennamen werden nicht mit '' begrenzt
    • desc als Spaltenname ist unzulässig

    Danke für die hilfreichen Antworten :)