Benedikt Hermann: SQL Query und Primär Schlüssel.

Hallo,

ich übermittle mittels PHP folgenden Query an ein MySql DB-System:

INSERT INTO eintrag (eintragID, name, adresse, plz, ort) VALUES ('', '$name', '$adresse', '$plz', '$ort')

Die Datenbank wird vorher ordnungsgemäß konnektiert und die Tabelle "Eintrag" ausgewält.

In der Tabelle ist "eintragID" als Primärschlüssel gekennzeichnet und "auto increment" wird ausgeführt.

Leider funktioniert der Eintrag mit diesem Query nicht.

Ich bekomme immer folgende Fehlermeldung:

Duplicate entry '' for key 2

Fragen:
Welche werte muss ich denn eintragID übermitteln?
Wieso funktioniert das nicht, dass das DB-System automatisch die Werte für eintragId ermittelt.
Was muss ich machen, um das zum laufen zu bekommen?

Vielen Dank

B. Hermann

  1. Fragen:
    Welche werte muss ich denn eintragID übermitteln?
    Wieso funktioniert das nicht, dass das DB-System automatisch die Werte für eintragId ermittelt.
    Was muss ich machen, um das zum laufen zu bekommen?

    Du mußt nichts übermitteln. Wenn die Spalte auf auto increment steht, mußt Du sie beim INSERT einfach weglassen:

    INSERT INTO eintrag (name, adresse, plz, ort`) VALUES ('$name', '$adresse', '$plz', '$ort')

    Normalerweise brauchen übrigens der Tabellenname und die Feldnamen nicht in Anführungszeichen stehen.

    1. Du mußt nichts übermitteln. Wenn die Spalte auf auto increment steht, mußt Du sie beim INSERT einfach weglassen:

      INSERT INTO eintrag (name, adresse, plz, ort`) VALUES ('$name', '$adresse', '$plz', '$ort')

      hab ich gleich als Erstes ausprobiert. Funktioniert genauso nicht.
      Bekomme die gleiche Fehlermeldung.

      Normalerweise brauchen übrigens der Tabellenname und die Feldnamen nicht in Anführungszeichen stehen.

      Danke. Werd ich gleich ändern.
      Die Werte müssen aber in Anführungszeichen stehen, oder?

      Viele Grüße

      Benedikt Hermann

      1. Hallo Benedikt,

        Die Werte müssen aber in Anführungszeichen stehen, oder?

        Nur Strings, Datumswerte, etc. aber keine Zahlen.

        Grüße Andreas

  2. Hallo,

    Hallo Benedikt,

    Fragen:
    Welche werte muss ich denn eintragID übermitteln?
    Wieso funktioniert das nicht, dass das DB-System automatisch die Werte für eintragId ermittelt.
    Was muss ich machen, um das zum laufen zu bekommen?

    Es sollte funktionieren, indem Du die eintragID ganz wegläßt:
    INSERT INTO eintrag name, adresse, plz, ort) VALUES ('$name', '$adresse', '$plz', '$ort')

    Grüße
    Andi

    1. Es sollte funktionieren, indem Du die eintragID ganz wegläßt:

      Hallo Andi,

      funktioniert aber nicht, gleiche Fehlermeldung.

      Hab ich evtl bei der DB was falsch konfigueriert. Hab das alles mit PhpMyAdmin angelegt.

      Grüße

      Benedikt Hermann

      1. Hallo Benedikt,

        Hab ich evtl bei der DB was falsch konfigueriert. Hab das alles mit PhpMyAdmin angelegt.

        Überprüfe mal die Indexe. Vielleicht hast Du ja z.B. für das Feld 'name' einen Index angelegt der keine Duplikate erlaubt und beim Eintragen ist $name leer (oder irgendwas in der Art).

        Grüße
        Andi